30.11.2012, 19:08 | #1 (permalink) |
Member
Регистрация: 09.10.2012
Сообщений: 21
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
|
Помогите решить задачу Pascal
Опишите, используя структуру записи, почтовую сортировку(город ,улица, дом, квартира, кому, ценность).Составьте программу, определяющую сколько посылок отправлено в город Владивосток Код:
const N=10; var Pt:array[1..10] of record gor:string; yl:string; dom:integer; kv:integer; kom:string; cen:string; i:integer; end; begin For i:=1 to n do readln(Pt[i].gor); readln(Pt[i].yl) ; readln(Pt[i].dom) ; readln(Pt[i].kv) ; readln(Pt[i].kom) ; readln(Pt[i].cen) ; end. Begin vlad:=0; for i:=1 to n do begin vlad:=vlad+Pt[i].gor); end. writeln vlad; readln; |
30.11.2012, 19:08 | |
Helpmaster
Member
Регистрация: 08.03.2016
Сообщений: 0
|
Ваш топик ичень схож с некоторыми другими топиками на нашем форуме Помогите решить задачу "Pascal ABC" Помогите решить задачу Pascal Помогите решить задачу в Pascal Помогите решить задачу в Pascal ABC |
30.11.2012, 22:39 | #2 (permalink) | |
Специалист
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
|
Цитата:
1. Ну зачем Вы, задавая переменную цикла i, загоняете ее в тело записи в качестве поля? Что ей там делать? 2. Где описание переменной vlad? 3. Запомните раз и навсегда: в Паскале (и в СИ, кстати) оператор действует ТОЛЬКО НА ОДИН ОПЕРАНД!!! А если нужно, например, в тело цикла ввести несколько операндов, то такую группу надлежит взять в операторные скобки begin..end (в СИ - в фигурные скобки {}). 4. "Слепой" ввод полей записи страшно неудобен, поэтому лучше выводить на экран слова-подсказки. 5. Точка после end ставится один-единственный раз - в самом конце программы. Как только транслятор доходит до "end.", он считает, что программа завершена и на дальнейшее даже не смотрит. А Вы этих "end с точкой" понатыкали куда ни попадя. 6. Смысла написанного в качестве цикла поиска владивостокских адресов я даже не пытаюсь понять - просто какой-то невнятный набор символов. 7. Если Вы хотите вывести на экран значение переменной либо текстовое сообщение, то и переменная, и сообщение должны быть параметрами оператора writeln, а не просто написаны после него. Вот Вам работающий код. Разбирайтесь: Код:
const N=10; var Pt:array[1..N] of record gor:string; yl:string; dom:integer; kv:integer; kom:string; cen:string; end; i,vlad:integer; Begin For i:=1 to n do begin Write('gorod: '); readln(Pt[i].gor); Write('ulitsa: '); readln(Pt[i].yl) ; Write('dom: '); readln(Pt[i].dom) ; Write('kvartira: '); readln(Pt[i].kv) ; Write('komu: '); readln(Pt[i].kom) ; Write('cennost: '); readln(Pt[i].cen) ; Writeln; end; vlad:=0; for i:=1 to n do if Pt[i].gor='Vladivostok' then vlad:=vlad+1; writeln(vlad); readln; End. |
|
02.12.2012, 17:47 | #3 (permalink) |
Member
Регистрация: 09.10.2012
Сообщений: 21
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
|
Спасибо за помощь)
|
Ads | |
Member
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070
|
|
|