![]() |
|
Модераторы: Poseidon |
![]()
|
|
| taiven |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 302 Регистрация: 30.6.2008 Репутация: 4 Всего: 9 |
Вот, пробуй, я особо не тестил)
|
|||
|
||||
| Zaulyx |
|
||||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 57 Регистрация: 21.11.2008 Репутация: нет Всего: нет |
Спасибо огромное, не представляешь как помог, особенно в конце семестра
вот у меня вопросы по коду: 1. За что отвечает переменные Index и value Index это что-то вроде i? т.е. он пробегает по строке? 2. вот функиця memset(s,c,n) как в учебнике написано размещает литеру c в первых n позициях стринга s и возвращает s. А вот в коде я не очень понял трактовку.. 3. я правильно понял работу цикла?
пока не дошли до конца файла { в ch записывается текущий символ в файле если ch десятичная цифра или встречается "-" { то.... двигаемся к следущей цифре в строке(т.е. к след столбцу?) считываем эту цифру } в переменную value записываем str в double типе(т.е он сразу записывает первую строку матрицы?) в matrix[i][j] считываем по строчно. (т.е идет как раз заполнения массива числами из файла?) M=i; N=j-1; это все понятно Если, проходя по строке нашли конец строки то i== j=0 (но когда же мы доходим до конца строки мы должны наоборот занулить i и j++ или нет?) Ну и собственно 2 вопрос по поводу мемсет. 4.
что значит for(;;) ?? Это сообщение отредактировал(а) Zaulyx - 10.12.2008, 18:22 |
||||
|
|||||
| taiven |
|
||||||||||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 302 Регистрация: 30.6.2008 Репутация: 4 Всего: 9 |
1. index это индекс
это же можно переписать так:
value временная переменная можно обойтись и без неё, т.е вместо этого
это
2. memset обнуляет массив str(стирает предыдущую запись). т.е. заполняем его символом '\0'. 3. Всё верно вроде
i это строки, j стобцы (matrix[№строки][№столбца]) |
||||||||||
|
|||||||||||
| taiven |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 302 Регистрация: 30.6.2008 Репутация: 4 Всего: 9 |
||||
|
||||
| Zaulyx |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 57 Регистрация: 21.11.2008 Репутация: нет Всего: нет |
препод попросил реализовать скобки, чтобы можно было использовать (1+2)/(3+4) такого вида....
вот я думаю какой цикл нужен?И вообще реально впихнуть это в нашу программу? и нужно сделать динамический массив для матрицы Это сообщение отредактировал(а) Zaulyx - 12.12.2008, 20:28 |
|||
|
||||
| taiven |
|
||||||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 302 Регистрация: 30.6.2008 Репутация: 4 Всего: 9 |
это уже анализатор выражений получается, т.е. тут надо будет разбирать строку такого вида (1+2)/(3+4), иначе я думаю не получится...
думаю нет.
ну и в чём проблема? |
||||||
|
|||||||
| Zaulyx |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 57 Регистрация: 21.11.2008 Репутация: нет Всего: нет |
нет сделать динамический массив это не проблема, а вот переделывать 2ю часть проги это проблема.
я как думаю нужно сделать цикл когда встречается "(" и когда встречается ")" , то то что в скобках записывать в какой то двумерный массив, M[наш столбец получившийся][1].... только вот можно ли такое реализовать? технически это возможно как нибудь? добавить в case эти скобки...и.... |
|||
|
||||
| taiven |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 302 Регистрация: 30.6.2008 Репутация: 4 Всего: 9 |
дело не столько в возможности или невозможности это реализовать технически, сколько в том, что хочет от тебя препод: видеть такую запись (1+2)/(3+4)(строку) для ввода или ему в принципе подходит, то что есть просто нужно доработать. |
|||
|
||||
| Zaulyx |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 57 Регистрация: 21.11.2008 Репутация: нет Всего: нет |
он просто хочет видеть доработанную программу....вот моя идея как сделать это:
значит как: считаем 1+2 записываем результат в result[i] и result[i] дозаписываем в наш исходный файл как последний столбец (5 столбец) дальше считаем 3+4 тоже записываем как последний (6 столбец) потом делим 5 на 6 в итоге реализуем скобки... дальше записываем в исходный файл исходную матрицу и записываем result[i] который 5 /6 в оутпут файл... думаю нужно сделать считывание матрицы как функцию, чтобы после изменения сразу на экране всплывал 5й столбец, в кэйс или даже в while добавить симол ")", т.е. после нажатия его спрашиваем продолжить вычисления? записываем result[i] обнуляем его и продолжаем со второй скобкой... Это сообщение отредактировал(а) Zaulyx - 13.12.2008, 20:30 |
|||
|
||||
| taiven |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 302 Регистрация: 30.6.2008 Репутация: 4 Всего: 9 |
Ну, ты же приблизительно знаешь, как хочешь сделать. Пробуй, а там посмотрим.
|
|||
|
||||
| Zaulyx |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 57 Регистрация: 21.11.2008 Репутация: нет Всего: нет |
а как вот этот кусок оформить как функцию?
|
|||
|
||||
| taiven |
|
||||||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 302 Регистрация: 30.6.2008 Репутация: 4 Всего: 9 |
приблизительно так:
ну и вызов
вот это
из функции main надо убрать |
||||||
|
|||||||
| Zaulyx |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 57 Регистрация: 21.11.2008 Репутация: нет Всего: нет |
как-то так....но не знаю как доработать. Добавил в кейс ')' и после ее нажатия result[i] должен обнулятся и добавлятся новый столбец в исходный файл, а как на самом деле получается или нет не могу сказать...
Это сообщение отредактировал(а) Zaulyx - 14.12.2008, 14:27 |
|||
|
||||
| taiven |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 302 Регистрация: 30.6.2008 Репутация: 4 Всего: 9 |
Этот код одна сплошная ошибка... Кто же функцию внутри функции main объявляет? Ты это компилировал вообще?
Ладно, вот есть выражение (1+2)/(1+3), как ты собираешься это вводить? Алгоритм, пошаговый, можешь написать? |
|||
|
||||
| Zaulyx |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 57 Регистрация: 21.11.2008 Репутация: нет Всего: нет |
сначала вводим 1+2 как изначально было до введения скобок
дальше нажимаем ")" результат записываем в resul[i] (как и было раньше) добавляем result[i] в исходную матрицу как последний столбец. выводим получившуюся матрицу на экран зануляем result[i] теперь вводим 1+3 нажимаем ")" результат в result[i] добавляем в исходную матрицу как последний столбец (Если в исходной матрице было 3 столбца теперь там их 5) вводим 4/5 нажимаем "=" записываем в result[i] записываем в output файл записанные выше столбцы 4 и 5 в исходную матрицу стираем Это сообщение отредактировал(а) Zaulyx - 14.12.2008, 15:49 |
|||
|
||||
![]()
|
| Правила форума "Центр помощи" | |
|
|
ВНИМАНИЕ! Прежде чем создавать темы, или писать сообщения в данный раздел, ознакомьтесь, пожалуйста, с Правилами форума и конкретно этого раздела.
Более подробно с правилами данного раздела Вы можете ознакомится в этой теме. Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Poseidon, Rodman |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Центр помощи | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |