комбинированные типы данных, не работает ,как ожидается..... |
1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code], либо быть опубликованы на нашем PasteBin в режиме вечного хранения.
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!
комбинированные типы данных, не работает ,как ожидается..... |
-Dimanez- |
Сообщение
#1
|
Гость |
не в тему: почему не могу создавать новые темы будучи пользователем, а гостем без проблем...? дескриминация)
есть программа....где описывается массив записей,которые содержит информацию о нескольких деталях(наименование, масса, габаитные размеры: длина, ширина,высота: материал). опеределиьт массу всех деталей. вот сам текст программы: program zapisi; const nmax=10; type plant=record name:string[10]; massa:integer; gr:record dl:integer; sh:integer; vis:integer; end; mtl:string[10] end; var summary; array [1..nmax] of plant; i,k,n,s:integer; begin writeln('введите количество деталей'); readln(n); {ввод записей} for i;=1 to n do with summary[i] do begin writeln('введите данные о',i,'-ой детале:'); writeln('наименование'); readln(name); with gr do writeln('длина'); read(dl); writeln('ширина'); read(sh); writeln('высота'); read(vis) end; writeln('материал'); readln(mtl); end; {вывод заголовка таблицы} ... ... {формирование и вывод итоговой строки} s:=0; for I:=1 to n do with summary[i] do begin s:=s+massa; end; with summary[n+1] do begin name:='сумма масс'; massa:=s; begin for k:=1 to 80 do write('_'); writeln; end; writeln('|',name,'':12-length(name),'|':2,s:8,'|':2); end; for k:=1 to 80 do write('_'); writeln; end. затрудения: - при вводи строк, игнорирует строку-материал.... - не хочет считать сумму масс..оставляет поле пустым....возможно вывод итоговой строки неправильно оформил... наедеюсь на помощб))) |
volvo |
Сообщение
#2
|
Гость |
Цитата при вводи строк, игнорирует строку-материал.... При вводе строк надо пользоваться ReadLn вместо Read, если нужно объяснение, почему - в поиск, уже неоднократно объяснялось... Поменяй все Read-ы на ReadLn...А вот со вторым вопросом - разбираться надо, что там у тебя накручено, но поскольку текст не оформлен тегами (и, естественно, потерял все форматирование - если оно и было), то этого я делать не буду... Добавлено через 3 мин. По поводу Цитата не могу создавать новые темы будучи пользователем, а гостем без проблем - идешь сюда: Книга жалоб и предложенийподнимаешь глаза наверх, и в разделе объявление видишь заголовок... Смотришь, в чем дело... |
neic |
Сообщение
#3
|
Студент 3-к группы (ИГТК) Группа: Пользователи Сообщений: 32 Пол: Мужской Реальное имя: Артём Репутация: 1 |
1. Вот ты-то уморил =).
for i;=1 to n do with summary[i] do begin writeln('введите данные о',i,'-ой детале:'); writeln('наименование'); readln(name); with gr do begin writeln('длина'); read(dl); writeln('ширина'); read(sh); writeln('высота'); read(vis) end; writeln('материал'); readln(mtl); end; А begin кто за тя вставлять будет? Кот Вася из первого подъезда? 2. А я в коде вообще не вижу чтобы ты массу заполнял Сообщение отредактировано: neic - -------------------- Жизнь - это лестница. Когда одна ступень проваливается, 2-ая нога находиться на второй ступеньке, а значит есть и второй шанс... ©
|
Dimanez |
Сообщение
#4
|
Группа: Пользователи Сообщений: 6 Пол: Мужской Репутация: 0 |
черт..правда))..спасибо...сейчас испробуем)
насчет begin - не первый его пропуск в прогрмме(( Сообщение отредактировано: Dimanez - |
neic |
Сообщение
#5
|
Студент 3-к группы (ИГТК) Группа: Пользователи Сообщений: 32 Пол: Мужской Реальное имя: Артём Репутация: 1 |
Пиши сразу же форматом. А так сам путаешься и других в заблуждение вводишь. ;)
Будут вопросы стучи в тему ;) -------------------- Жизнь - это лестница. Когда одна ступень проваливается, 2-ая нога находиться на второй ступеньке, а значит есть и второй шанс... ©
|
Dimanez |
Сообщение
#6
|
Группа: Пользователи Сообщений: 6 Пол: Мужской Репутация: 0 |
вот текст программы...с выводом таблицы итд...есь один момент...
при вводе более одной детали, программка выводи ток первую строку ..но ! подсчет суммы (что и требуется от программы) идет со всех данных о деталях.. то есть..выводит только одну первую строку... помогите разобраться.. program lab7; Сообщение отредактировано: Dimanez - |
volvo |
Сообщение
#7
|
Гость |
{формирование и вывод итоговой строки}Отмеченное место является ошибкой... У тебя там присутствует вложенный цикл, причем по той же переменной I, что и внешний, "Вывод строк таблицы"... Отформатируй исходник как положено - сам все увидишь... |
Dimanez |
Сообщение
#8
|
Группа: Пользователи Сообщений: 6 Пол: Мужской Репутация: 0 |
спасиб)...помогло)...всроду не догадался бы)
{формирование и вывод итоговой строки} ввел новый парметр цикла... но возник дургой вопрос...теперь после каждой строки записи он выдает итоговую строк с суммой масс...а не в самом конце...исправить так и не получилось... результат один и тот же...или после каждой строки или макси-шоу ввиде бесконечного вывода строк... |
volvo |
Сообщение
#9
|
Гость |
Видимо, ты так и не переформатировал исходник. И не видишь, где у тебя один цикл, а где - другой... Вот же они:
{вывод строк таблицы}Можно здесь ошибиться? |
Текстовая версия | 15.05.2024 9:45 |