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

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

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

> запись
Richard
сообщение 12.05.2007 12:19
Сообщение #1


Новичок
*

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

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


Вот надо решить такую задачу:
1. Записать структуру с именем STUDENT, содержащую следующие поля:
=>NAME – фамилия и инициалы;
=>GROUP – номер группы;
=>SES – успеваемость (массив из пяти элементов).
2. Написать программу, выполняющие следующие действия:
=>ввод с клавиатуры данных в массив STUD1, состоящий из десяти структур типа STUDENT; записи должны быть упорядочены по возрастанию содержимого поля GROUP;
=>вывод на дисплей фамилий и номеров групп для всех студентов, включенных в массив, если средний балл студента больше 4.0;
=>если таких студентов нет, вывести соответствующее сообщение.

Вот код который я пытался сделать
1.
type
STUDENT=record
NAME:String;
GROUP:integer;
SES:array[0..4] of byte;
end;


2.
var
STUD1:array[0..9]of STUDENT;
i,j:integer;
vspom:student;
sr:real;
Count:byte;
begin
for i:=0 to 9 do
begin
writeln('Please enter a name');
readln(stud1[i].name);
writeln('Please enter a group');
readln(stud1[i].group);
for j:=0 to 4 do
begin
writeln('Введите оценку:');
readln(stud1[i].ses[j]);
end;
end;
for j:=0 to 8 do
begin
if stud1[i].group<stud1[i+1].group then
vspom:=stud1[i];
stud1[i]:=stud1[i+1];
stud1[i+1]:=vspom;
end;
count:=0;
for i:=0 to 9 do
begin
sr:=(stud1[i].ses[0]+stud1[i].ses[1]+stud1[i].ses[2]+stud1[i].ses[3]+stud1[i].se
s[3])/2;
if sr>4.0 then
writeln('Name:',stud1[i].name,'','Group:',stud1[i].group
)
else
count:=count+1;
end;
if count=5 then
writeln('Все троечники и двоечники');
end;

Но чето не выходит у меня
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов
arhimag
сообщение 12.05.2007 12:22
Сообщение #2


Знаток
****

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

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


Код
sr:=(stud1[i].ses[0]+stud1[i].ses[1]+stud1[i].ses[2]+stud1[i].ses[3]+stud1[i].se
s[3])/2;

надо делить не на 2 а на 5 smile.gif среднее арифметическое равно (a1+a2+a3+...+an)/n

Добавлено через 8 мин.
Код
    
for j:=0 to 8 do
for i:=9 downto j+1 do
  begin
   if stud1[pred(i)].group>stud1[i].group then begin
    vspom:=stud1[pred(i)];
    stud1[pred(i)]:=stud1[i];
    stud1[i]:=vspom;
   end;
  end;

И вот сортировка.


--------------------
Чего хочет женщина – того хочет Бог
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

Сообщений в этой теме


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

 



- Текстовая версия 20.07.2025 18:41
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"