• Добро пожаловать на компьютерный форум Tehnari.ru. Здесь разбираемся с проблемами ПК и ноутбуков: Windows, драйверы, «железо», сборка и апгрейд, софт и безопасность. Форум работает много лет, сейчас он переехал на новый движок, но старые темы и аккаунты мы постарались сохранить максимально аккуратно.

    Форум не связан с магазинами и сервисами – мы ничего не продаём и не даём «рекламу под видом совета». Отвечают обычные участники и модераторы, которые следят за порядком и качеством подсказок.

    Если вы у нас впервые, загляните на страницу о форуме и правила – там коротко описано, как задать вопрос так, чтобы быстро получить ответ. Чтобы создавать темы и писать сообщения, сначала зарегистрируйтесь, а затем войдите под своим логином.

    Не знаете, с чего начать? Создайте тему с описанием проблемы – подскажем и при необходимости перенесём её в подходящий раздел.
    Задать вопрос Новые сообщения Как правильно спросить
    Если пришли по старой ссылке со старого Tehnari.ru – вы на нужном месте, просто продолжайте обсуждение.

Комбинированный тип. Указатели и динамические структуры данных

Сова

Ученик
Регистрация
28 Окт 2011
Сообщения
10
Реакции
0
Баллы
0
Комбинированный тип. Указатели и динамические структуры данных

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

Сведения о студентах содержат следующую информацию: фамилия, имя, курс, оценки по предметам (математика, физика, информатика). Создать массив записей (из 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 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.SurName,' ',group1.Name,' ',group1.Marks.Kyrs,' ',group1.Marks.Matematika,' ',group1.Marks.Phys,' ',group1.Marks.Inform);
end;
for i:=1 to 6 do
begin
smark:=group1.Marks.Matematika + group1.Marks.Phys + group1.Marks.Inform;
end;
max:=smark[1];
imax:=1;
for i:=1 to 6 do
begin
if (group1.Marks.Kyrs)=2 then begin
if smark<max then
begin
max:=smark;
imax:=i;
end;
end;
end;
writeln('Худший студент 2-го курса ',group1[imax].SurName,' ',group1[imax].Name);
end.
 
Назад
Сверху