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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 05.03.2009, 21:45   #11
Veselyn
Форумчанин
 
Аватар для Veselyn
 
Регистрация: 29.01.2009
Сообщений: 175
По умолчанию

Прошу вас исправте ошибки я беспонятия что там делать. Нашол программу наподобие там используется
read(a[i].name) т.д. и т.п.;
а уменя на точке после a[i] выдает ошибку
компелирует только если ставляю запятую, ито недоконца, на доеточии в последнем цикле {for i:=1 to n do} тоже ошибка
пужалуйста поправте.

Код:
program base;
uses crt;
type   telo = record
          name, adres, rojdenia, sp : integer;
                end;

Var   a: array [1..100] of integer;
      name: integer[40];
      adres: integer[30];
      rojden: integer[15];
      specialnost:integer[15];
      sp: integer;
      k : real;
      i,n : integer;
Begin
Clrscr;
specialnost:=sp;
k:=0;
writeln ('Vvedite kolichestvo sotrydnikov :',n);
readln(n);
for i:=1 to n do
   Begin
   writeln ('Vvedite FIO :',name);
   read(a[i],name);
   writeln ('Vvedite adres :',adres);
   read(a[i],adres);
   writeln ('Vvedite daty rojdenia :',rojden);
   read(a[i],rojden);
   writeln ('Vvedite specialnost :',sp);
   read(a[i],sp);
 Clrscr;
   end;
   Writeln ('-------------------------------------------------------------------');
   writeln (' FIO ','|',' adres ','|',' god rojdeniya ','|',' specialnost ');
   writeln ('-------------------------------------------------------------------');
           for i:=1 to n do
             Begin
              writeln (a[i],name,'|',a[i],adres,'|',a[i],rojden,'|',a[i],sp,'|');
           end;
   writeln ('-------------------------------------------------------------------');
       writeln ('Vvedie specialnost dla poiska :',sp);
         readln(sp);
  for i:=1 to n do
    if sp= a[i],sp then
  begin
   writeln (a[i],name,' | ',a[i],adres,' | ',a[i],rojden,' | ',a[i],sp,' | ');
    inc(k);
   end;
 Wreteln ('Kolichestvo naydenuh sotrydnikov : ',k);
redln;
end.
Все люди делятся на 10 типов: те, кто понимают двоичную систему счисления и те, кто нет.
Veselyn вне форума Ответить с цитированием
Старый 08.03.2009, 10:49   #12
roach1967
Пользователь
 
Регистрация: 21.02.2009
Сообщений: 28
Подмигивание

Получается что-то вроде такого:
Код:
program base;
uses crt;
type
  str40 = string[40];
  str30 = string[30];
  str15 = string[15];
  telo = record
    name: str40;
    adres: str30;
    rojdenia: str15;
    sp: str15;
  end;

Var
  a: array [1..100] of telo;
  sp: str15;
  k : integer;
  i,n : integer;
Begin
  Clrscr;
  {specialnost:=sp;}
  k:=0;
  write ('Vvedite kolichestvo sotrydnikov :');
  readln(n);
  for i:=1 to n do begin
    writeln('Sotrudnik N ', i, ':');
    write ('Vvedite FIO           :');
    readln(a[i].name);
    write ('Vvedite adres         :');
    readln(a[i].adres);
    write ('Vvedite daty rojdenia :');
    readln(a[i].rojdenia);
    write ('Vvedite specialnost   :');
    readln(a[i].sp);
    writeln;
    {Clrscr;}
  end;
  Writeln ('-------------------------------------------------------------------');
  writeln (' FIO | adres | god rojdeniya | specialnost ');
  writeln ('-------------------------------------------------------------------');
  for i:=1 to n do begin
    writeln (a[i].name,' | ',a[i].adres,' | ',a[i].rojdenia,' | ',a[i].sp);
  end;
  writeln ('-------------------------------------------------------------------');
  write ('Vvedie specialnost dla poiska :');
  readln(sp);
  for i:=1 to n do if sp= a[i].sp then begin
    writeln (a[i].name,' | ',a[i].adres,' | ',a[i].rojdenia,' | ',a[i].sp);
    inc(k);
  end;
  Writeln ('Kolichestvo naydenuh sotrydnikov : ',k);
  readln;
end.
Всё работает.
Цитата:
а уменя на точке после a[i] выдает ошибку
a - должен быть массивом записей типа telo, а не целых чисел.
Счётчик найденных сотрудников k должен быть целым а не вещественным числом (integer, word, byte). Только к числам такого типа применимы операции инкрементации/декрементации.
И ещё, во всех операторах вывода везде зачем-то присутствуют переменные, да ещё и до присваивания им каких-либо значений. Паскаль при компиляции не считает это за ошибку, но при работе программы такое использование может привести к непредсказуемому поведению.
В споре рождается истина.
roach1967 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Работа с файлами и записями. Помощь с итоговой Refenement Помощь студентам 13 19.03.2009 08:42
Работа с записями, паскаль Дядька Помощь студентам 5 13.02.2009 18:44
работа с записями Mango Помощь студентам 2 12.10.2008 23:54
Программа с записями Алексей Д. Помощь студентам 5 27.04.2008 20:25
Help! Проблема с записями... Sлавян Паскаль, Turbo Pascal, PascalABC.NET 2 27.04.2008 16:40