IPB
ЛогинПароль:

> Прочтите прежде чем задавать вопрос!

1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code], либо быть опубликованы на нашем PasteBin в режиме вечного хранения.
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!

 
 Ответить  Открыть новую тему 
> Задача. Записи
сообщение
Сообщение #1


Гость






Всем привет wink.gif . Задали нам вот такую вот задачку по информатике:

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

Сдавать надо послезавтра, а я чего-то не понмаю что надо сделать, ну не бум-бум я в этом деле. Кому не трудно помогите написать програмку. Буду признательна.
 К началу страницы 
+ Ответить 
сообщение
Сообщение #2


Гость






-Nata-, прочти мою подпись, и воспользуйся вторым советом (я про поиск)...
Ищи про типизированные файлы, записи, аэропорты, вокзалы, хоккейные команды (это только то, что я сам выкладывал на форум, есть еще...)
 К началу страницы 
+ Ответить 
сообщение
Сообщение #3


Гость






Текст задачи немного изменили, но смысл не изменился. Вот попытка решения, но полностью решить чего то никак не получается, в частности непонятно как гайти самого юного и самого старого. К тому же меню выводится после ввода КАЖДОГО члена списка а не в конце ввода всех dry.gif Вот задача:
uses crt;
 label 1;
 type
   house_register = record
   number : string;
   Last_name : string;
   Name : string;
   Age : integer;
   Status : string;
   Place_of_education : string;
   Place_of_working : string;
   Standing : string;
   Pension : string;
 end;

 var
   base : array[1..30] of house_register;
   i : integer;
   f : text;
   n : integer;
   s : string;
  begin
  clrscr;
       writeln('max');
       readln(n);
       for i:=1 to n do
       with base[i] do
       begin
       writeln('#'); readln(number);
       writeln('ln'); readln(Last_name);
       writeln('n'); readln(Name);
       writeln('a'); readln(Age);
         if Age>=18 then
         begin
         writeln('Enter status person s(student), w(working), p(pensioner)');
         readln(Status);
         end;
           begin
           if Status = 's' then
           writeln('Enter place of education');
           readln(Place_of_education);
           end;
             begin
             if Status = 'w' then
             writeln('Enter place of working and standing');
             readln(Place_of_working, standing);
             end;
               begin
               if Status = 'p' then
               writeln('Enter pensions(years)');
               readln(pension);
            end;
         begin
         1:writeln('For show students enter ss');
         writeln('For show works enter sw');
         writeln('For show pensions enter sp');
         writeln('For show yonger person enter y');
         writeln('For show older person enter o');
         readln(s);
       if s = 'ss' then
        if status = 's' then
            begin
            writeln(number);
            writeln(Last_name);
            writeln(Name);
            writeln(Age);
            writeln(Status);
            writeln(Place_of_education);
            end;
       if s = 'sw' then
        if status = 'w' then
            begin
            writeln(number);
            writeln(Last_name);
            writeln(Name);
            writeln(Age);
            writeln(Place_of_working);
            writeln(Standing);
            end;
       if s = 'sp' then
        if status = 'p' then
            begin
            writeln(number);
            writeln(Last_name);
            writeln(Name);
            writeln(Age);
            writeln(Pension);
            end;
      if s <> ('ss') then
       if s <> ('sw') then
        if s <> ('sp') then
      begin
      writeln('ERROR!');
      goto 1;
      end;
      end;
      readln;
end;
end.

Если не трудно окажите помощь smile.gif
 К началу страницы 
+ Ответить 
сообщение
Сообщение #4


Гость






Неужели никто не в силах помочь ???
 К началу страницы 
+ Ответить 
сообщение
Сообщение #5


Гость






Цитата
Неужели никто не в силах помочь ???

Ну, почему сразу "не в силах"?
uses crt;
type
  house_register = record
  number : string;
  Last_name : string;
  Name : string;
  Age : integer;
  Case Status: char of{string}
  's':(Place_of_education : string);
  'w':(Place_of_working, Standing : string);
  'p':(Pension : string);
end;

Procedure PrintInfo(X: house_register);
begin
  With X Do Begin
    writeln(number);
    writeln(Last_name);
    writeln(Name);
    writeln(Age);
    writeln(Status);
    Case Status Of
      's': writeln(Place_of_education);
      'w': begin
        writeln(Place_of_working);
        writeln(Standing);
      end;
      'p': writeln(Pension);
    End;
  End;
end;

 var
   base : array[1..30] of house_register;
   i : integer;
   f : text;
   n : integer;
   s : string;

   min, max: integer;
begin
  clrscr;
  write('max = '); readln(n);

  for i:=1 to n do
    with base[i] do begin

      write('#  '); readln(number);
      write('ln '); readln(Last_name);
      write('n  '); readln(Name);
      write('a  '); readln(Age);
      if Age>=18 then begin
        writeln('Enter status person s(student), w(working), p(pensioner)');
        readln(Status);
      end;

      case Status of
        's': begin
          writeln('Enter place of education');
          readln(Place_of_education);
        end;

        'w': begin
          writeln('Enter place of working and standing');
          readln(Place_of_working, standing);
        end;

        'p': begin
          writeln('Enter pensions(years)');
          readln(pension);
        end;
      end;

    end;

  repeat
    writeln('For show students enter ss');
    writeln('For show works enter sw');
    writeln('For show pensions enter sp');
    writeln('For show yonger person enter y');
    writeln('For show older person enter o');
    writeln('exit = x');
    readln(s);

    min := 1; max := 1;

    for i := 1 to n do
      with base[i] do begin

        if base[min].Age > Age then min := i;
        if base[max].Age < Age then max := i;

        if s[length(s)] in ['s', 'w', 'p'] then
          if s[length(s)] = Status then PrintInfo(base[i]);

      end;

    case s[length(s)] of
      'y': PrintInfo(base[min]);
      'o': PrintInfo(base[max]);
    end;
  until s[length(s)] = 'x';
  readln;
end.
 К началу страницы 
+ Ответить 

 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 



- Текстовая версия 18.04.2025 14:37
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name