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

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

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

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 23.03.2009, 02:05   #1
tanek
Форумчанин
 
Регистрация: 07.03.2009
Сообщений: 209
По умолчанию Тип запись

Здравствуйте! Я сталкнулась с токой проблемой, необходимо панисать программу: Описать переменную "расписание", содержащую:
1. День недели
2. Кол-во пар в этот день
3. Время начала и конца пары
4. Название предмета
5. Фамилия преподавателя
не поскажите как это сделать? Зарание спасибо...
tanek вне форума Ответить с цитированием
Старый 23.03.2009, 02:15   #2
bpystep
Форумчанин
 
Регистрация: 25.02.2009
Сообщений: 180
По умолчанию

Код:
program laba_2;
uses crt;
const N=10;
type
student=record;
  name:string;
  group:integer;
  ses:array[1..5] of integer;
end;
var
 stud1:array[1..N] of student;
procedure input;
var
 i,j:integer;
begin
    for i:=1 to N do
    begin
        writeln('Введите фамилию и инициалы');
        read(stud1[i].name);
        writeln('Введите номер группы');
        read(stud1[i].group);
        for j:=1 to 5 do
         begin
          writeln('Введите успеваемость студента из 5 оценок');
          read(stud1[i].ses[j]);
         end;
    end;
end;

procedure sort;
var
i,j,tmp:integer;
begin
for i:=n-1 downto 1 do
    for j:=1 to 5 do
        if stud1[j].group>stud1[j+1].group then
        begin
            tmp:=stud1[j].group;
            stud1[j].group:=stud1[j+1].group;
            stud1[j+1].group:=tmp;
        end;
end;

procedure output;
var
 i,k,j:integer;
 s:array[1..N] of real;
 r:real;
begin
 for i:=1 to N do
  s[i]:=0;
   for j:=1 to 5 do
    s[i]:=stud1[i].ses[j]+s[i];
    k:=0;
   for i:=1 to N do
    if s[i]/5>4 then
     begin
      writeln('Фамилии студентов у которых средний балл > 4.0');
      writeln('Искомый студент:');
      writeln('Фамилия студента: ', stud1[i].name);
      writeln('Группа студента: ', stud1[i].group);
      for i:=1 to N do
       writeln('Средний балл студента: ', s[i]);
      inc(k);
     end;
    if k=0 then writeln('Таких студентов нет.');
end;
begin
    clrscr;
    input;
    sort;
    output;
    readkey;
end.
это пример для задания
1. Описать пользовательский тип данных с именем STUDENT типа
запись (RECORD), содержащий следующие поля:
- NAME - фамилия и инициалы (тип STRING);
- GROOP - номер группы (тип INTEGER);
- SES - успеваемость - массив из 5-и элементов (тип INTEGER).
2. Написать программу, выполняющую следующие действия:
- ввод с клавиатуры данных в массив STUD1, состоящий из 10-и за-
писей типа STUDENT; записи должны быть размещены по номерам
содержимого поля GROOP.
- вывод на дисплей фамилий и номеров групп для всех студентов,
включенных в массив, если средний балл студента больше 4.0.
- если таких студентов нет - вывести соответствующее сообщение.
Выбор режима работы программы и ввод исходных данных осуществля-
ется через окно диалога. Формируемый массив STUD1 отображаетя в
окнеисходных данных. Результаты поиска отображаются в окне
результатов.

дальше додумывай сама, если будут наброски, то выкладывай постараемся помочь. Я зайду только завтра, т.к. уже поздно
Запомните, вы едете в Россию, поэтому когда компьютер попросит вас набрать пароль, наберите слово "Пароль"
bpystep вне форума Ответить с цитированием
Старый 23.03.2009, 13:27   #3
tanek
Форумчанин
 
Регистрация: 07.03.2009
Сообщений: 209
По умолчанию

Я так и не знаю как ее сделать....
Не поможите мне?
tanek вне форума Ответить с цитированием
Старый 23.03.2009, 13:30   #4
puporev
Старожил
 
Регистрация: 13.10.2007
Сообщений: 2,740
По умолчанию

Ну создадим мы эту переменную, а дальше-то что с ней делать?
puporev вне форума Ответить с цитированием
Старый 23.03.2009, 13:39   #5
puporev
Старожил
 
Регистрация: 13.10.2007
Сообщений: 2,740
По умолчанию

Просто описание делается так.
Код:
type vrem=record  //тип запись время с полями
          chs,min:byte;//часы, минуты
          end;
     rasp=record //тип запись расписание
          day:string[20];//день
          par:byte;//количество пар
          nch,knc:vrem;//время начала и окончания пары
          prd:string[20];//название предмета
          prp:string[20];//фамилия преподавателя
          end;
var r:rasp;//переменная типа расписание
     rs:array[1..50] of rasp; //или массив записей типа расписание
P.S. Это для паскаля.

Последний раз редактировалось puporev; 23.03.2009 в 13:42.
puporev вне форума Ответить с цитированием
Старый 23.03.2009, 13:40   #6
XuTpbIu
Злобстер
Форумчанин
 
Аватар для XuTpbIu
 
Регистрация: 19.03.2009
Сообщений: 134
По умолчанию

Цитата:
Сообщение от tanek Посмотреть сообщение
Описать переменную "расписание", содержащую:
1. День недели
2. Кол-во пар в этот день
3. Время начала и конца пары
4. Название предмета
5. Фамилия преподавателя
как вопрос задан так и напишем:
Код:
TSchedule = record
  DayOfWeek: String;
  LessonsCount: Byte;
  StartLessonTime: TTime;
  EndLessonTime: TTime;
  CourseName: String;
  TutorSurname: String
end;
Вуаля
От знаний ещё никто не умирал, но рисковать не стоит.
XuTpbIu вне форума Ответить с цитированием
Старый 23.03.2009, 19:47   #7
tanek
Форумчанин
 
Регистрация: 07.03.2009
Сообщений: 209
По умолчанию

Вот что у меня получилось, но оно не работает....помогите доделать:
ROGRAM LAB14;

const
N=100;

type
schedule = record
day_week:string;
count_pairs:integer;
time_of_beginning:real;
time_the_end:real;
name_subject:string;
end;

array_schedules=array[1..N] of schedule;

procedure InputCountDays(const N:integer; var count:integer);
begin
repeat
writeln ('ўўҐ¤ЁвҐ Є®«ЁзҐбвў® ¤*Ґ© *Ґ¤Ґ«Ё: ');
readln(count);
until (count>0) and (count<N);
end;

procedure InputDayWeek(var array_schedule:array_schedules;var count:integer);
var
i:integer;
begin
for i:=1 to count do
begin
with array_schedule[i] do
begin
writeln ('‚ўҐ¤ЁвҐ ¤Ґ*м *Ґ¤Ґ«Ё: ');
readln(day_week);
end;
end;
end;

procedure InputCountPairs(var count_pairs:integer);
begin
writeln ('‚ўҐ¤ЁвҐ Є®«ЁзҐбвў® Ї*а: ');
readln(count_pairs);
end;
procedure InputTimePairs(var time_of_beginning:real; var time_the_end:real);
begin
writeln ('‚ўҐ¤ЁвҐ ўаҐ¬п **з*«*-Є®*ж* Ї*а: ');
readln(time_of_beginning,time_the_e nd);
end;

procedure InputNameSubjects(var name_subject:string);
begin
writeln ('ўўҐ¤ЁвҐ **§ў**ЁҐ ЇаҐ¤¬Ґв*: ');
readln(name_subject);
end;

procedure Outputschedule(count:integer;i:inte ger;var array_schedule:array_schedules);
begin
for i:=1 to count do
begin
writeln('„Ґ*м *Ґ¤Ґ«Ё',i,': ', array_schedule[i].day_week,
' Љ®«ЁзҐбвў® Ї*а: ', array_schedule[i].count_pairs,
' ‚६п **з*«*-Є®*ж* Ї*ал: ', array_schedule[i].time_of_beginning,array_schedule[i].time_the_end,
' Ќ*бў**ЁҐ ЇаҐ¤¬Ґв*: ', array_schedule[i].name_subject);


end;
readln;
end;

var
count:integer;
array_schedules:array_schedul;
i:integer;

begin
InputCountDays( N,count);
InputDayWeek(array_schedule,count);
InputCountPairs(count_pairs);
InputTimePairs(time_of_beginning,ti me_the_end);
InputNameSubjects(name_subject);
Outputschedule(count,i,array_schedu le);
end.
пожалуста....
tanek вне форума Ответить с цитированием
Старый 23.03.2009, 19:48   #8
tanek
Форумчанин
 
Регистрация: 07.03.2009
Сообщений: 209
По умолчанию

ROGRAM LAB14;

const
N=100;

type
schedule = record
day_week:string;
count_pairs:integer;
time_of_beginning:real;
time_the_end:real;
name_subject:string;
end;

array_schedules=array[1..N] of schedule;

procedure InputCountDays(const N:integer; var count:integer);
begin
repeat
writeln ('введите количество дней недели: ');
readln(count);
until (count>0) and (count<N);
end;

procedure InputDayWeek(var array_schedule:array_schedules;var count:integer);
var
i:integer;
begin
for i:=1 to count do
begin
with array_schedule[i] do
begin
writeln ('Введите день недели: ');
readln(day_week);
end;
end;
end;

procedure InputCountPairs(var count_pairs:integer);
begin
writeln ('Введите количество пар: ');
readln(count_pairs);
end;
procedure InputTimePairs(var time_of_beginning:real; var time_the_end:real);
begin
writeln ('Введите время начала-конца пар: ');
readln(time_of_beginning,time_the_e nd);
end;

procedure InputNameSubjects(var name_subject:string);
begin
writeln ('введите название предмета: ');
readln(name_subject);
end;

procedure Outputschedule(count:integer;i:inte ger;var array_schedule:array_schedules);
begin
for i:=1 to count do
begin
writeln('День недели',i,': ', array_schedule[i].day_week,
' Количество пар: ', array_schedule[i].count_pairs,
' Время начала-конца пары: ', array_schedule[i].time_of_beginning,array_schedule[i].time_the_end,
' Насвание предмета: ', array_schedule[i].name_subject);


end;
readln;
end;

var
count:integer;
array_schedules:array_schedul;
i:integer;

begin
InputCountDays( N,count);
InputDayWeek(array_schedule,count);
InputCountPairs(count_pairs);
InputTimePairs(time_of_beginning,ti me_the_end);
InputNameSubjects(name_subject);
Outputschedule(count,i,array_schedu le);
end.
tanek вне форума Ответить с цитированием
Старый 23.03.2009, 19:49   #9
tanek
Форумчанин
 
Регистрация: 07.03.2009
Сообщений: 209
По умолчанию

Забы еще описать переменную
фамилия препадавателя
tanek вне форума Ответить с цитированием
Старый 23.03.2009, 19:56   #10
tanek
Форумчанин
 
Регистрация: 07.03.2009
Сообщений: 209
По умолчанию

проблема в том что она даже не компилируется, акак исправит имеющуюся ошибку я не знаю:
PROGRAM LAB14;

const
N=100;

type
schedule = record
day_week:string;
count_pairs:integer;
time_of_beginning:real;
time_the_end:real;
name_subject:string;
suname_teacher:string;
end;

array_schedules=array[1..N] of schedule;

procedure InputCountDays(const N:integer; var count:integer);
begin
repeat
writeln ('введите количество дней недели: ');
readln(count);
until (count>0) and (count<N);
end;

procedure InputDayWeek(var array_schedule:array_schedules;var count:integer);
var
i:integer;
begin
for i:=1 to count do
begin
with array_schedule[i] do
begin
writeln ('Введите день недели: ');
readln(day_week);
end;
end;
end;

procedure InputCountPairs(var count_pairs:integer);
begin
writeln ('Введите количество пар: ');
readln(count_pairs);
end;
procedure InputTimePairs(var time_of_beginning:real; var time_the_end:real);
begin
writeln ('Введите время начала-конца пар: ');
readln(time_of_beginning,time_the_e nd);
end;

procedure InputNameSubjects(var name_subject:string);
begin
writeln ('введите название предмета: ');
readln(name_subject);
end;

procedure InputSurnameTeacher(var surname_techer:string);
begin
writeln('Введите фамилию учителя предмета');
readln(surname_techer);
end;

procedure Outputschedule(count:integer;i:inte ger;var array_schedule:array_schedules);
begin
for i:=1 to count do
begin
writeln('День недели',i,': ', array_schedule[i].day_week,
' Количество пар: ', array_schedule[i].count_pairs,
' Время начала-конца пары: ', array_schedule[i].time_of_beginning,array_schedule[i].time_the_end,
' Насвание предмета: ', array_schedule[i].name_subject);


end;
readln;
end;

var
count:integer;
array_schedules:array_schedul;
i:integer;

begin
InputCountDays( N,count);
InputDayWeek(array_schedule,count);
InputCountPairs(count_pairs);
InputTimePairs(time_of_beginning,ti me_the_end);
InputNameSubjects(name_subject);
InputeSurnameTeacher(surname_teache r);
Outputschedule(count,i,array_schedu le);
end.
tanek вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Pascal. Тип запись d_b Помощь студентам 9 02.03.2009 08:46
задача на тип-ЗАПИСЬ Fornarina Помощь студентам 1 01.03.2009 11:00
Перевести тип String в тип PChar (Delphi 7) ScorpioN_T Помощь студентам 2 28.10.2008 22:13
тип запись связист Помощь студентам 5 13.12.2006 08:59