Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 20.11.2012, 13:14   #1
lilywka
Пользователь
 
Регистрация: 14.10.2012
Сообщений: 31
Сообщение Записи

что у меня тут не так? она вроде бы работает, но как то не правильно

Заданные поля записи, определить их типы данных, написать программу для ввода произвольного количества записей через массив, инициализировать как типизированную константу. Вывести записи по указанному критерию на экран в форме, удобной для просмотра.
10. Рыба: название, длина, масса, глубина существования. Критерий: рыбы с глубины> 1000 м.

Код:
program Project2;

{$APPTYPE CONSOLE}
uses
  SysUtils,
  Windows;
type
  fish=record
  name:string;
  length:string;
  mass:string;
  depth_of_existence:integer;
end;
var
  List:array[1..500] of fish;
  i,n:integer;
begin
  SetconsoleCp(1251);
  SetConsoleOutputcp(1251);
  Writeln ('введите количество рыб');
  if (n<=500)
  then readln(n);
  for i:=1 to n do
  with list[i] do
begin
  Writeln('введите имя рыбы');
  readln (name);
  Writeln('введите длину рыбы');
  readln(length);
  Writeln('введите массу рыбы');
  readln(mass);
  Writeln('введите глубину сущесвования');
  readln(depth_of_existence);
  end;
  for i:=1 to n do
begin
  if list[i].depth_of_existence>1000 then
  begin
    write(list[i].name);
    write(list[i].length);
    Writeln(list[i].mass);
    Writeln(list[i].depth_of_existence);
  end;
end;
readln;
  { TODO -oUser -cConsole Main : Insert code here }
end.
lilywka вне форума Ответить с цитированием
Старый 20.11.2012, 13:19   #2
Mad_Cat
Made In USSR!
Старожил
 
Аватар для Mad_Cat
 
Регистрация: 01.09.2010
Сообщений: 3,657
По умолчанию

Код:
if (n<=500)
  then readln(n);
поменяйте на
Код:
repeat readln(n); until (n<=500) and (n>=1);
и
Код:
if list[i].depth_of_existence>1000 then
  begin
    write(list[i].name,' ');
    write(list[i].length,' ');
    Write(list[i].mass,' ');
    Writeln(list[i].depth_of_existence);
  end;
"...В жизни я встречал друзей и врагов.В жизни много всего перевидал.Солнце тело мое жгло, ветер волосы трепал,но я смысла жизни так и не узнал..."
(c) Юрий Клинских aka "Хой"
Mad_Cat вне форума Ответить с цитированием
Старый 20.11.2012, 13:24   #3
lilywka
Пользователь
 
Регистрация: 14.10.2012
Сообщений: 31
По умолчанию

а можете подсказать, как сделать типизированую константу?
lilywka вне форума Ответить с цитированием
Старый 20.11.2012, 13:39   #4
Mad_Cat
Made In USSR!
Старожил
 
Аватар для Mad_Cat
 
Регистрация: 01.09.2010
Сообщений: 3,657
По умолчанию

пример
Код:
Type Point = Record
   X, Y : Real
End;
Код:
var Origin : Point = (X : 0.0; Y : 0.0); .
"...В жизни я встречал друзей и врагов.В жизни много всего перевидал.Солнце тело мое жгло, ветер волосы трепал,но я смысла жизни так и не узнал..."
(c) Юрий Клинских aka "Хой"
Mad_Cat вне форума Ответить с цитированием
Старый 20.11.2012, 13:40   #5
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Код:
const
   OdnaZapis : fish =
    ( name:'Форель'; length:'длинненькая';  mass:'тяжёлая';  depth_of_existence:50);
можно и константный массив таким же образом задать...

внимание! хочу Вас предостеречь от ошибки. Как только Вы захотите создать типизированный файл var f : file of fish; Вы тут же получите ОШИБКУ!
Дело в том, что в таком случае внутри типа record НЕЛЬЗЯ использовать типы данных неопредёлённой длины. А именно - string
нужно использовать ограниченные типы данных, например, string[50]

ну и ещё одно замечание. А почему длина рыбы и масса - это у Вас строковый тип данных? А если будет задание найти все рыбы тяжелее 20 кг - что, будете строчки парсить?! думаю, что длина и вес должны быть числовыми полями!
Serge_Bliznykov вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Оцените математической формулой, насколько больше цифр в двоичной записи большого числа, чем в его десятичной записи. Анюта.Хом Помощь студентам 1 02.12.2011 23:13
Записи Т@нзиля Помощь студентам 1 29.04.2011 13:52
Записи. solnze.90 Паскаль, Turbo Pascal, PascalABC.NET 1 27.12.2010 12:35
записи angel# Паскаль, Turbo Pascal, PascalABC.NET 0 29.04.2010 01:23
записи((( diller89 Помощь студентам 2 25.04.2010 18:32