Технический форум
Вернуться   Технический форум > Программирование > Форум программистов > Delphi, Kylix and Pascal


Ответ
 
Опции темы Опции просмотра
Старый 30.11.2012, 19:08   #1 (permalink)
kickmaster
Member
 
Регистрация: 09.10.2012
Сообщений: 21
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
По умолчанию Помогите решить задачу Pascal

Доброго времени суток, помогите пожалуйста решить задачу Free Pascal Lazarus.
Опишите, используя структуру записи, почтовую сортировку(город ,улица, дом, квартира, кому, ценность).Составьте программу, определяющую сколько посылок отправлено в город Владивосток
Код:
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;
kickmaster вне форума   Ответить с цитированием

Старый 30.11.2012, 19:08
Helpmaster
Member
 
Аватар для Helpmaster
 
Регистрация: 08.03.2016
Сообщений: 0

Ваш топик ичень схож с некоторыми другими топиками на нашем форуме

Помогите решить задачу "Pascal ABC"
Помогите решить задачу Pascal
Помогите решить задачу в Pascal
Помогите решить задачу в Pascal ABC

Старый 30.11.2012, 22:39   #2 (permalink)
Vladimir_S
Специалист
 
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
По умолчанию

Цитата:
Сообщение от kickmaster Посмотреть сообщение
Доброго времени суток, помогите пожалуйста решить задачу Free Pascal Lazarus.
К сожалению, пока не могу поздравить Вас с успехом: ошибок просто невероятное количество, практически в каждой строке.
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.
Успехов!
Vladimir_S вне форума   Ответить с цитированием
Старый 02.12.2012, 17:47   #3 (permalink)
kickmaster
Member
 
Регистрация: 09.10.2012
Сообщений: 21
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
По умолчанию

Спасибо за помощь)
kickmaster вне форума   Ответить с цитированием
Ads

Яндекс

Member
 
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070
Ответ


Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Выкл.
HTML код Выкл.
Trackbacks are Вкл.
Pingbacks are Вкл.
Refbacks are Выкл.




Часовой пояс GMT +4, время: 22:58.

Powered by vBulletin® Version 6.2.5.
Copyright ©2000 - 2014, Jelsoft Enterprises Ltd.