Технический форум
Вернуться   Технический форум > Программирование > Форум программистов > Помощь студентам


Ответ
 
Опции темы Опции просмотра
Старый 19.05.2012, 20:10   #1 (permalink)
Сова
Новичок
 
Регистрация: 28.10.2011
Сообщений: 10
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
По умолчанию Комбинированный тип. Указатели и динамические структуры данных

Нужна вторая часть программы. Вернее сказать, написать программу с помощью очереди, на основе массивов представлена ниже.

Сведения о студентах содержат следующую информацию: фамилия, имя, курс, оценки по предметам (математика, физика, информатика). Создать массив записей (из 6-10 элементов) и заполнить его данными. Найти фамилию и имя студента 2-го курса, который учится хуже остальных.
Решить эту же задачу с использованием очереди (вместо массива).


Программа через массив.

program Student;
type
TPtr = ^TElem;
TElem = record
inf : integer;
link : TPtr;
end;
TMarks=record
Kyrs:byte;
Matematika:byte;
Phys:byte;
Inform:byte;
end;
TStudent=record
SurName:string[30];
Name:string[20];
Marks:Tmarks;
end;
TGroup=array [1..6] of TStudent;
var
group1:TGroup;
i,max,imax:integer;
smark:array [1..6] of integer;
begin
for i:=1 to 6 do
with group1[i] do
begin
Writeln('Введите фамилию');
readln(SurName);
writeln('Введите имя');
readln(Name);
writeln('Введите курс обучения');
readln(Marks.Kyrs);
writeln('Введите оценку по математике');
readln(Marks.Matematika);
writeln('Введите оценку по физике');
readln(Marks.Phys);
writeln('Введите оценку по информатике');
readln(Marks.Inform);
end;
writeln('ФИ Курс Математика Физика Информатика ');
for i:=1 to 6 do
begin
writeln(group1[i].SurName,' ',group1[i].Name,' ',group1[i].Marks.Kyrs,' ',group1[i].Marks.Matematika,' ',group1[i].Marks.Phys,' ',group1[i].Marks.Inform);
end;
for i:=1 to 6 do
begin
smark[i]:=group1[i].Marks.Matematika + group1[i].Marks.Phys + group1[i].Marks.Inform;
end;
max:=smark[1];
imax:=1;
for i:=1 to 6 do
begin
if (group1[i].Marks.Kyrs)=2 then begin
if smark[i]<max then
begin
max:=smark[i];
imax:=i;
end;
end;
end;
writeln('Худший студент 2-го курса ',group1[imax].SurName,' ',group1[imax].Name);
end.
Сова вне форума   Ответить с цитированием

Старый 19.05.2012, 20:10
Helpmaster
Member
 
Аватар для Helpmaster
 
Регистрация: 08.03.2016
Сообщений: 0

Данные темы могут вам хорошо помочь в решении вопроса

Задачи на комбинированный тип, Pascal
Указатели поворотов и аварийка

Ads

Яндекс

Member
 
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070
Ответ

Опции темы
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Выкл.
HTML код Выкл.
Trackbacks are Вкл.
Pingbacks are Вкл.
Refbacks are Выкл.




Часовой пояс GMT +4, время: 05:46.

Powered by vBulletin® Version 6.2.5.
Copyright ©2000 - 2014, Jelsoft Enterprises Ltd.