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

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

Вернуться   Форум программистов > Delphi программирование > Паскаль, Turbo Pascal, PascalABC.NET
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 06.05.2012, 19:24   #1
Leshii
Форумчанин
 
Регистрация: 26.07.2011
Сообщений: 376
По умолчанию Таблицы в паскале.

Задание: Создайте две таблицы. Первая содержит список фамилий учеников, упорядоченный по алфавиту, вторая - даты их рождения. Составьте программу которая находит дату рождения ученика с заданным именем.

Сразу говорю, решать за меня не надо. У меня вопрос такой, это через записи делается ? ( про графику речи не шло ) то есть так, к примеру:

Код:
type tabl=record
  Surname: string;
  date_of_birth: string;
end;
file_tabl=file of table;
var f: file of tabl;
      a: tabl;
      name: string;
      i, n: integer;
begin
...
readln(n);
...
readln(name);
assign(f, name);rewrite(f);
for i:=1 to n do  begin
readln(a.surname);
readln(a.date_of_birth);
end;
close(f);
...
Люблю на ты.Я человек простой
Leshii вне форума Ответить с цитированием
Старый 07.05.2012, 06:46   #2
TinMan
Форумчанин
 
Аватар для TinMan
 
Регистрация: 05.09.2011
Сообщений: 869
По умолчанию

привет, Леший
Код:
type
  tabl=record
    Surname: string;
    year,month,day: word;  // я бы сделал лучше так
  end;
  file_tabl=file of table;

var f: file of tabl; // странно, сначала сделал тип, а потом им не воспользовался..
      a: tabl;
      name: string;
      i, n: integer;
begin
  ...
  readln(n);  // а что это такое?
  ...
  readln(name);  
  assign(f, name);
  rewrite(f);  // почему rewrite? этот способ открытия обнуляет содержимое файла!
  for i:=1 to n do  begin
    readln(a.surname);   // неверно - из файла таблиц нельзя читать текст!
    readln(a.date_of_birth);
  end;
close(f);
...
Возможностей ХРАНЕНИЯ инфы на диске, грубо гря, две:

1. файл таблиц (как ты объявил), он же бинарный; тогда записывать такой файл может ТОЛЬКО сама прога (вводишь в ней все, и пишешь), а потом она же его читает и работает с инфой.

2. просто текстовый файл; тогда его можно подготовить в любом текстовом редакторе (лучше - в блокноте); вот тогда ты его будешь читать ТАК, как написал выше (только открывай reset'ом).

Мешать эти два способа в едыну кучу - низзя! понииил? ))

бувай.
Предпочитаю на "ты".
TinMan вне форума Ответить с цитированием
Старый 21.05.2012, 20:13   #3
Leshii
Форумчанин
 
Регистрация: 26.07.2011
Сообщений: 376
По умолчанию

Tinman, привет. Но привет с большим опозданием. Как выяснилось, я в корню делал неправильно.

Приведу пример другого задания ...

Цитата:
Создайте две таблицы. Первая содержит выигрышные номера лотереи, упорядоченные по возрастанию, второй-выигрыши, которые выпали на эти номера. Составьте программу, которая проверяет номер лотерейного билета пользователя и сообщает, выиграл он в лотерею, и что именно, если выиграл.
Код:
Program lab4_2;
Uses crt;
const n=5;
var i, j, m, buffer: integer; vugrash: string;
      n_b: array[1..n] of integer;
      n_v: array[1..n] of string;
begin
clrscr;
writeln('Таблица номеров и призов');
for i:=1 to n do begin
     write(i,'. ');
     readln(n_b[i],n_v[i]);
end;
for i:=1 to n do 
 for j:=1 to n-1 do
  if n_b[j]>n_b[j+1] then begin
     buffer:=n_b[j];
     n_b[j]:=n_b[j+1];
     n_b[j+1]:=buffer;
end;
writeln('Vvedite nomer vugr. buleta 1..100: ');
readln(m);
for i:=1 to n do
 if n_b[i] = m then m:=i;
end;
vugrash:= n_v[m];
writeln('Номер выигрышного билета - ', n_b[i],' и ваш приз - ', vugrash);
readln;
end.
Теперь поясню что написал.
Я представил данные в виде двух таблиц ( к примеру )
Таблица номеров билетов: Таблица призов:
1. 34 1. авто
2. 23 2. деньги
3. 12 3. деньги
4. 56 4. гриль
5. 10 5. ничего


Собственно суть такова, по номеру билета найти выигрыш. То есть по номеру первой таблицы я обращаюсь к номеру второй и тем самым получаю результат ( сам в шоке от того что написал , но вот походу и та и эта задача решаются именно так ).

Примечание.
Первая таблица упорядочена по возрастанию, и я не могу попасть на нужный мне выигрыш из за этого =)
Люблю на ты.Я человек простой
Leshii вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
таблицы в паскале SUXOY Помощь студентам 0 05.01.2012 01:09
Таблицы в Паскале 1Павел1 Паскаль, Turbo Pascal, PascalABC.NET 0 17.12.2011 13:22
Таблицы в паскале Ks7V Помощь студентам 4 12.11.2011 20:17
Игра"Угадай число" в Паскале.(вставка таблицы рекордов) valli Помощь студентам 1 03.01.2011 14:04
ПРОГРАММА построения таблицы в Паскале. 200-400р Анюта) Паскаль, Turbo Pascal, PascalABC.NET 3 24.05.2010 03:48