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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 22.03.2009, 18:38   #1
bpystep
Форумчанин
 
Регистрация: 25.02.2009
Сообщений: 180
По умолчанию Массивы, записи (pascal)

Задание
1. Описать пользовательский тип данных с именем STUDENT типа
запись (RECORD), содержащий следующие поля:
- NAME - фамилия и инициалы (тип STRING);
- GROOP - номер группы (тип INTEGER);
- SES - успеваемость - массив из 5-и элементов (тип INTEGER).
2. Написать программу, выполняющую следующие действия:
- ввод с клавиатуры данных в массив STUD1, состоящий из 10-и за-
писей типа STUDENT; записи должны быть размещены по возрастанию
содержимого поля GROOP.
- вывод на дисплей фамилий и номеров групп для всех студентов,
включенных в массив, если средний балл студента больше 4.0.
- если таких студентов нет - вывести соответствующее сообщение.
Выбор режима работы программы и ввод исходных данных осуществля-
ется через окно диалога. Формируемый массив STUD1 отображаетя в
окнеисходных данных. Результаты поиска отображаются в окне
результатов.

Начало моего кода.
Код:
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:integer;
begin
    for i:=1 to N do
    begin
        writeln('Введите фамилию и инициалы');
        read(stud1[i].name);
        writeln('Введите номер группы');
        read(stud1[i].group);
        writeln('Введите успеваемость студента');
        read(stud1[i].ses);
    end;
end;
Почему массив не хочет заполняться(веделено жирным в коде)?
пытался сделать отдельный цикл для массива ses, не получается=(
Запомните, вы едете в Россию, поэтому когда компьютер попросит вас набрать пароль, наберите слово "Пароль"

Последний раз редактировалось rpy3uH; 22.03.2009 в 20:03.
bpystep вне форума Ответить с цитированием
Старый 22.03.2009, 18:41   #2
maladoy
delphi-ст!
Форумчанин
 
Аватар для maladoy
 
Регистрация: 02.01.2009
Сообщений: 825
По умолчанию

потому что
Код:
stud1[i].ses
тоже массив а не переменная и
и заполняться должен в цикле от 1 до 5 и еще
причем здесь
Код:
writeln('Введите номер маршрута');
вступлю в команду разработчиков ПО на Delphi
maladoy вне форума Ответить с цитированием
Старый 22.03.2009, 18:44   #3
bpystep
Форумчанин
 
Регистрация: 25.02.2009
Сообщений: 180
По умолчанию

а каким образом мне заполнить этот массив для данного студента?
Запомните, вы едете в Россию, поэтому когда компьютер попросит вас набрать пароль, наберите слово "Пароль"
bpystep вне форума Ответить с цитированием
Старый 22.03.2009, 18:46   #4
maladoy
delphi-ст!
Форумчанин
 
Аватар для maladoy
 
Регистрация: 02.01.2009
Сообщений: 825
По умолчанию

Код:
writeln('Введите успеваемость студента');
for k:=1 to 5 do begin // <---- вот так я думаю!
read(stud1[i].ses[k]); 
end;
вступлю в команду разработчиков ПО на Delphi
maladoy вне форума Ответить с цитированием
Старый 22.03.2009, 19:21   #5
bpystep
Форумчанин
 
Регистрация: 25.02.2009
Сообщений: 180
По умолчанию

а как подсчитать средний бал студента из пяти его оценок???
я думаю вот так, но компилятор ругается при этом действии=(

for i:=1 to N do
for j:=1 to 5 do
r:=(stud1[i].ses[j]+stud1[i].ses[j-1])/5;
Запомните, вы едете в Россию, поэтому когда компьютер попросит вас набрать пароль, наберите слово "Пароль"
bpystep вне форума Ответить с цитированием
Старый 22.03.2009, 19:29   #6
maladoy
delphi-ст!
Форумчанин
 
Аватар для maladoy
 
Регистрация: 02.01.2009
Сообщений: 825
По умолчанию

Код:
var
r:array[1..N] of real;
............................
for i:=1 to N do
for j:=1 to 5 do
r[i]:=stud1[i].ses[j]+r[i];
for i:=1 to N do
r[i]:=r[i]/5;
вступлю в команду разработчиков ПО на Delphi
maladoy вне форума Ответить с цитированием
Старый 22.03.2009, 19:50   #7
bpystep
Форумчанин
 
Регистрация: 25.02.2009
Сообщений: 180
По умолчанию

вывод программы получился вот такой, по-моему всё правильно, но на эран ничего не выводиться.

procedure output;
var
i,k,j:integer;
s:array[1..N] of real;
r:real;
begin
for i:=1 to N do
for i:=1 to N do
begin
for j:=1 to 5 do
begin
s[i]:=stud1[i].ses[j]+s[i];
end;
r:=s[i]/5;
if (r>4.0) then
begin
writeln('Фамилии студентов у которых средний балл > 4.0');
writeln('Искомый студент:');
writeln('Фамилия студента: ', stud1[i].name);
writeln('Группа студента: ', stud1[i].group);
k:=1;
end; end;
if k=0 then writeln('Таких студентов нет.');
end;
почему ничего не выводиться на экран??
Запомните, вы едете в Россию, поэтому когда компьютер попросит вас набрать пароль, наберите слово "Пароль"
bpystep вне форума Ответить с цитированием
Старый 22.03.2009, 19:56   #8
maladoy
delphi-ст!
Форумчанин
 
Аватар для maladoy
 
Регистрация: 02.01.2009
Сообщений: 825
По умолчанию

Код:
procedure output;
var
i,k,j:integer;
s:array[1..N] of real;
r:real;
begin
for i:=1 to N do
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);
inc(k);
end;
if k=0 then writeln('Таких студентов нет.');
end.
а так не проще?
вступлю в команду разработчиков ПО на Delphi
maladoy вне форума Ответить с цитированием
Старый 22.03.2009, 20:05   #9
bpystep
Форумчанин
 
Регистрация: 25.02.2009
Сообщений: 180
По умолчанию

формула расчета

for i:=1 to N do
for j:=1 to 5 do
s[i]:=stud1[i].ses[j]+s[i];

наверно не правильная, тк к. я ввожу студенту все пятерки, а говорит что таких студентов нет((
Запомните, вы едете в Россию, поэтому когда компьютер попросит вас набрать пароль, наберите слово "Пароль"
bpystep вне форума Ответить с цитированием
Старый 22.03.2009, 20:09   #10
maladoy
delphi-ст!
Форумчанин
 
Аватар для maladoy
 
Регистрация: 02.01.2009
Сообщений: 825
По умолчанию

а ты отправь на экран значения s[i] и посмотри чего выдаст?
вступлю в команду разработчиков ПО на Delphi
maladoy вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Записи(Pascal).Помогите плиз!!! КуДрЯ Помощь студентам 7 09.02.2009 23:12
[Pascal]типизированный файл+записи Fuaran8989 Помощь студентам 4 30.11.2008 14:01
Pascal.Записи и файл!!! W_P Помощь студентам 2 20.05.2008 22:01
задача на записи Pascal kitty Помощь студентам 9 18.04.2008 18:14