IPB
ЛогинПароль:

> Прочтите прежде чем задавать вопрос!

1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code], либо быть опубликованы на нашем PasteBin в режиме вечного хранения.
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!

 
 Ответить  Открыть новую тему 
> массивы, Помогите найти ошибку в программе
сообщение
Сообщение #1





Группа: Пользователи
Сообщений: 5
Пол: Мужской

Репутация: -  0  +


Помогите найти ошибку в программе (программа выводит на дисплей данные только последнего абитуриента).
Вот условие: Программа должна запросить ввод: количества студентов в группе (5<=n>=10), название 4-х дисциплин, по которым сдавались экзамены и обеспечивать ввод данных о каждом студенте: ФИО, результаты сдачи каждого экзамена, определить количество студентов со средним баллом не ниже 3.5, фамилия которых начинается с заданной буквы (от А до Я) и вывести сведения о количестве таких студентов, ФИО студентов и их средний балл.

А так же помогите разобраться как ввести условие, чтобы выводились сведения о студентах фамилия которых начиналась с заданной буквы(от А до Я)

program kurs;

type T=record
fio: string[55];
ocn: array[1..4] of integer
end;
var spisok: t;
kol: integer;
N: integer;
srbal:real;
I,J: integer;
begin kol:=0;
writeln('ВВедите число абитуриентов, сдававших экзамены');
readln (N);
writeln('итоги экзаменов');
for i:=1 to N do
with Spisok do begin
write('введите фио ');
readln(Fio);
write('введите оценки ');
readln(ocn[1], ocn[2], ocn[3], ocn[4]);
for j:=1 to 4 do
srbal:=(ocn[1]+ocn[2]+ocn[3]+ocn[4])/4;
end;
writeln;
writeln('Итоги экзаменов');
writeln('№':2, 'Студент':4, 'Русский язык':12, 'Математика':8, 'Физика':8, 'информатика':12);
with spisok do begin
for i:=1 to n do begin
write(i:2, fio);
for j:=1 to 4 do
write(ocn[j]:8);
writeln;
end;
readln;

end;
end.

М
используй теги



Сообщение отредактировано: klem4 -


Прикрепленные файлы
Прикрепленный файл  PROBA.PAS ( 849 байт ) Кол-во скачиваний: 199
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #2


Perl. Just code it!
******

Группа: Пользователи
Сообщений: 4 100
Пол: Мужской
Реальное имя: Андрей

Репутация: -  44  +


у тебя не правильно организована база, тип переменой spisok должен быть array of T, а не T

например:

spisok: array [1..10] of T; // инфа о 10ти студентах
дальше это все надо обрабатывать в цикле от 1 до 10, работая с spisok[i].

Добавлено через 1 мин.
Зачем кстати тему продублировал ? Больше так не делай, старю тему удаляю.


--------------------
perl -e 'print for (map{chr(hex)}("4861707079204E6577205965617221"=~/(.{2})/g)), "\n";'
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #3





Группа: Пользователи
Сообщений: 5
Пол: Мужской

Репутация: -  0  +


Добавлено через 1 мин.
Зачем кстати тему продублировал ? Больше так не делай, старю тему удаляю.
[/quote]
Извиняюсь.
Вот сделал как ты и говорил (spisok: array[1..10] of t)
но ни чего не изменилось

program kurs;

type T=record
fio: string[55];
ocn: array[1..4] of integer
end;
var spisok: array[1..10] of t;
kol: integer;
N: integer;
srbal:real;
I,J: integer;
begin kol:=0;
writeln('ВВедите число абитуриентов, сдававших экзамены');
readln (N);
writeln('итоги экзаменов');
for i:=1 to N do
with Spisok[i] do begin
write('введите фио ');
readln(Fio);
write('введите оценки ');
readln(ocn[1], ocn[2], ocn[3], ocn[4]);
for j:=1 to 4 do
srbal:=(ocn[1]+ocn[2]+ocn[3]+ocn[4])/4;
end;
writeln;
writeln('Итоги экзаменов');
writeln('№':2, 'Студент':4, 'Русский язык':12, 'Математика':8, 'Физика':8, 'информатика':12, 'Средний балл':12);
with spisok[i] do begin
for i:=1 to n do begin
write(i:2, fio);
for j:=1 to 4 do
write(ocn[j]:8);
write(srbal:12:1);
writeln;
end;
readln;

end;
end.

 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #4


Гость






...
writeln('Итоги экзаменов');
writeln('№':2, 'Студент':4, 'Русский язык':12, 'Математика':8, 'Физика':8, 'информатика':12, 'Средний балл':12);
for i:=1 to n do
with spisok[i] do begin { <--- Сначала узнаем I, потом присоединяем через With }
write(i:2, fio);
for j:=1 to 4 do write(ocn[j]:8);
write(srbal:12:1);
writeln;
end;
 К началу страницы 
+ Ответить 
сообщение
Сообщение #5





Группа: Пользователи
Сообщений: 5
Пол: Мужской

Репутация: -  0  +


Спасибо. Еще немножко подкоректировал и все заработало.
Теперь буду разбираться с условием вывода информации об абитуриенте с заданной буквы и набранным средним количеством баллов...
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 





- Текстовая версия 19.04.2024 5:53
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name