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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 28.01.2015, 18:56   #1
Nyash
Пользователь
 
Регистрация: 28.01.2015
Сообщений: 11
Вопрос Описать структуру с именем ZNAK. Паскаль

Описать структуру с именем ZNAK, содержащую следующие поля:
- фамилия, имя;
- знак Зодиака;
- дата рождения (массив из трех чисел).
Написать программу, выполняющую следующие действия с помощью
процедур или функций:
- ввод с клавиатуры данных в файл, состоящий из элементов типа ZNAK;
записи должны быть упорядочены по датам рождения;
- чтение данных из этого файла;
- вывод на экран информации о человеке, чья фамилия введена с клавиа-
туры;
- если такого нет, выдать на дисплей соответствующее сообщение. :conf used:
Nyash вне форума Ответить с цитированием
Старый 28.01.2015, 19:00   #2
Вадим Мошев

Старожил
 
Аватар для Вадим Мошев
 
Регистрация: 12.11.2010
Сообщений: 8,568
По умолчанию

Я могу решить вам эту задачу небольшое денежное вознаграждение.
Пишите на vadimFreelance {(coбака)} yandex ({тчk) ru

Подробнее по ссылке у меня в подписи.
Вадим Мошев вне форума Ответить с цитированием
Старый 28.01.2015, 19:03   #3
Nyash
Пользователь
 
Регистрация: 28.01.2015
Сообщений: 11
По умолчанию

Это форум бесплатной помощи или я ошиблась?
Nyash вне форума Ответить с цитированием
Старый 28.01.2015, 19:15   #4
Вадим Мошев

Старожил
 
Аватар для Вадим Мошев
 
Регистрация: 12.11.2010
Сообщений: 8,568
По умолчанию

Ситуация следующая.
Сложность и/или объём задачи обратно пропорциональны вероятности того, что вам напишут готовую программу просто так. Сложность у вашей программы - крайне невысокая, но объём у неё я бы сказал те такой, чтобы писать готовые решения просто так.

Помощь, конечно, бесплатна, но под помощью подразумевается, что вы публикуете свои наработки и/или задаёте конкретные вопросы что не работает, с чем не можете разобраться, вам помогают и консультируют, дают советы. Это бесплатно.

Просто у всех очень велик соблазн отождествлять помощь с решением задач другому человеку.
Вадим Мошев вне форума Ответить с цитированием
Старый 28.01.2015, 19:54   #5
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
Это форум бесплатной помощи или я ошиблась?
Я помогу тебе, но хотелось бы увидеть твои попытки.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 28.01.2015, 20:36   #6
Nyash
Пользователь
 
Регистрация: 28.01.2015
Сообщений: 11
По умолчанию

Цитата:
Сообщение от Stilet Посмотреть сообщение
Я помогу тебе, но хотелось бы увидеть твои попытки.
Код:
program zznak;
uses crt;
const zodiak:array[0..11] of string = ('Vodoley (21.01-19.02)','Ribi (20.02-20.03)','Oven (21.03-20.04)','Telec (21.04-21.05)',
'Blizneci (22.05-21.06)','Rak (22.06-22.07)','Lev (23.07-23.08)','Deva (24.08-23.09)',
'Vesi (24.09-23.10)','Skorpion (24.10-22.11)','Strelec (23.11-21.12)','Kozerog (22.12-20.01)');
n=2;
type znak=record
     zodiak:string[30];{data:array[1..3] of integer;}
     First_name:string[15];
     Last_name:string[15];
     birthday: record
               day:1..31;
               month:1..12;
               year:integer;
     Znak:char;
     end;
end;
var
    F:file of znak;   {File dlia xraneniia bazi Znak}
    a:array[1..n]of znak;
    elem1,elem2:znak;
Procedure create_file;
begin
seek(f,filezise(f));
writeln('введите сведения о человеке');
If Elem1.FIO='*' Then Break;
while true do
begin
writeln ('введите фамилию и имя');
readln(elem1.first_name);
readln(elem1.last_name);
writeln('введите дату рождения');
readln(elem1.birthday.day);
readln(elem1.birthday.month);
readln(elem1.birthday.year);
writeln('введите знак');
readln(elem1.znak);
end;
end;
end.

Далее я затрудняюсь

Последний раз редактировалось Stilet; 28.01.2015 в 20:53.
Nyash вне форума Ответить с цитированием
Старый 28.01.2015, 21:02   #7
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Угу. Не особо проверяя твой вариант предлагаю следующее:
Код:
program Project1;

const zodiak:array[0..11] of string = ('Vodoley (21.01-19.02)','Ribi (20.02-20.03)','Oven (21.03-20.04)','Telec (21.04-21.05)',
'Blizneci (22.05-21.06)','Rak (22.06-22.07)','Lev (23.07-23.08)','Deva (24.08-23.09)',
'Vesi (24.09-23.10)','Skorpion (24.10-22.11)','Strelec (23.11-21.12)','Kozerog (22.12-20.01)');
n=2;
type znak=record
     zodiak:string[30];{data:array[1..3] of integer;}
     FIO:string[45];
     birthday: record
               day:1..31;
               month:1..12;
               year:integer;
     end;
end;
var
    F:file of znak;   {File dlia xraneniia bazi Znak}
    a:array[1..n]of znak;
    elem1,elem2:znak;
Procedure create_file;
begin
  assign(f,'f'); rewrite(f);
  writeln('введите сведения о человеке');
  while true do  begin
    If Elem1.FIO='*' Then Break;
    writeln ('введите фамилию и имя');
    readln(elem1.FIO);
    writeln('введите дату рождения');
    readln(elem1.birthday.day);
    readln(elem1.birthday.month);
    readln(elem1.birthday.year);
    writeln('введите знак');
    readln(elem1.zodiak);
    write(f,elem1);
  end;
  close(f);
end;

Procedure read_file;  {чтение данных из этого файла}
begin
  assign(f,'f'); reset(f);
  while not eof(f) do  begin
    read(f,elem1);
    with elem1 do
     writeln (FIO,birthday.day:10,'.',birthday.month,'.',birthday.year,zodiak:20);
  end;
  close(f);
end;

Procedure read_man;  {вывод на экран информации о человеке, чья фамилия введена с клавиа-
туры}
var s:string; b:boolean;
begin
  assign(f,'f'); reset(f);
  write('фио: ');readln(s); b:=false;
  while not eof(f) do  begin
    read(f,elem1);
    with elem1 do
     if FIO=s then begin
      writeln (FIO,birthday.day:10,'.',birthday.month,'.',birthday.year,zodiak:20);
      b:=true;
     end;
  end;
  close(f);
  if not b then writeln('Такого нет');
end;
begin
  create_file;  read_file;    read_man; readln;
end.
Вопрос остается в сортировке. Пока не очень понятно как твой преподаватель хочет ее получить.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 28.01.2015, 21:07   #8
Nyash
Пользователь
 
Регистрация: 28.01.2015
Сообщений: 11
По умолчанию

Цитата:
Сообщение от Stilet Посмотреть сообщение

Вопрос остается в сортировке. Пока не очень понятно как твой преподаватель хочет ее получить.
сортировку прямого выбора можно, либо вставки

благодарю вас
Nyash вне форума Ответить с цитированием
Старый 28.01.2015, 21:22   #9
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
сортировку прямого выбора можно, либо вставки
Не. Ты не поняла. Ладно, стелепатирую:
Код:
Procedure create_file;
var z:array of znak;   i,j:integer;
begin

  writeln('введите сведения о человеке');
  while true do  begin    SetLength(z,Length(z)+1);
    If Elem1.FIO='*' Then Break;
    writeln ('введите фамилию и имя');
    readln(z[High(z)].FIO);
    writeln('введите дату рождения');
    readln(z[High(z)].birthday.day);
    readln(z[High(z)].birthday.month);
    readln(z[High(z)].birthday.year);
    writeln('введите знак');
    readln(z[High(z)].zodiak);
  end;
  for i:=Low(z) to High(z) do begin
    for j:=Low(z) to High(z) do begin
     if (z[i].birthday.day<z[j].birthday.day) or
        (z[i].birthday.month<z[j].birthday.day) or
        (z[i].birthday.year<z[j].birthday.year) then
       elem1:=z[i]; z[i]:=z[j];z[j]:=elem1;
    end;
  end;

  assign(f,'f'); rewrite(f);
  for i:=Low(z) to High(z) do write(f,z[i]);
  close(f);
end;
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 28.01.2015, 21:35   #10
Nyash
Пользователь
 
Регистрация: 28.01.2015
Сообщений: 11
По умолчанию

Цитата:
Сообщение от Stilet Посмотреть сообщение
Не. Ты не поняла. Ладно, стелепатирую:
а, все, дошло, благодарю вас
Nyash вне форума Ответить с цитированием
Ответ


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

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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Описать Структуру с именем STUDENT DzirT34669 Помощь студентам 6 08.01.2015 14:21
Программа на Turbo C: Описать структуру с именем STUDENT kolyasha Помощь студентам 7 10.06.2014 08:02
Описать структуру с именем TRAIN, C++ alucard115 Помощь студентам 2 18.02.2014 16:59
Описать структуру с именем AEROFLOT lolwto Общие вопросы Delphi 4 06.05.2013 14:16
Описать структуру с именем TRAIN Destox Паскаль, Turbo Pascal, PascalABC.NET 1 29.03.2013 07:54