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

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

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

Восстановить пароль
Повторная активизация e-mail

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

Ответ
 
Опции темы Поиск в этой теме
Старый 09.12.2011, 19:29   #1
6666
Пользователь
 
Регистрация: 21.03.2011
Сообщений: 44
Вопрос

Уважаемые форумчане задали задание помогите написать на delphi.
Вот задание:
Цитата:
Описать структуру с именем STUDENT, содержащую следующие поля:
-Фамилия и инициалы;
-Номер группы;
-Успеваемость (массив из пяти элементов);
Написать программу, выполняющую следующие действия (действия оформить в виде программ):
-Ввод с клавиатуры данных в массив, состоящий из десяти структур типа STUDENT; записи должны быть упорядочены по возрастанию номера группы;
-Вывод на дисплей фамилий и номеров групп для всех студентов, включенных в массив, если средний балл студента больше введенного пользователем значения;
-Если таких студентов нет, вывести соответствующее сообщение.
Заранее спасибо!

структура вот такая:
[DELPHI]type
TStudent = record
LastName : String[80];
NameAcr : String[10];
GrpNum : Integer; // may be String[]
Grades : Array [1..5] Of Integer;
end;[/DELPHI]
как сделать??:
Цитата:
Ввод с клавиатуры данных в массив, состоящий из десяти структур типа STUDENT; записи должны быть упорядочены по возрастанию номера группы;

Последний раз редактировалось artemavd; 17.12.2011 в 20:13.
6666 вне форума Ответить с цитированием
Старый 10.12.2011, 12:37   #2
Mad_Cat
Made In USSR!
Старожил
 
Аватар для Mad_Cat
 
Регистрация: 01.09.2010
Сообщений: 3,657
По умолчанию

читайте
"...В жизни я встречал друзей и врагов.В жизни много всего перевидал.Солнце тело мое жгло, ветер волосы трепал,но я смысла жизни так и не узнал..."
(c) Юрий Клинских aka "Хой"
Mad_Cat вне форума Ответить с цитированием
Старый 10.12.2011, 13:38   #3
6666
Пользователь
 
Регистрация: 21.03.2011
Сообщений: 44
По умолчанию

благодарю за ссылку

начал делать в консольном приложение сделал заполнение массива. вот что получилось:
Код:
uses
  SysUtils;

type tstudent = record
   fio: string[45];
GrpNum : Integer; // may be String[]
     Grades : 1..5;
     
end;
var student : array [1..10] of tstudent;

   I: integer;
begin
    
   for I:=1 to 10 do
   begin

      writeln ('vvedite famili ima otchestvo');
      readln (student[I].fio);
      writeln ('vvedite ¹ group');
      readln (student[I].GrpNum);
      writeln ('vvedite ball ');
      readln(student[I].Grades);
     
   end;
   writeln ('vvod zakonchen');
   writeln ;
как сделать задание:
Цитата:
-Вывод на дисплей фамилий и номеров групп для всех студентов, включенных в массив, если средний балл студента больше введенного пользователем значения;
подскажите пожалуйста. заранее спасибо!

Последний раз редактировалось artemavd; 17.12.2011 в 20:13.
6666 вне форума Ответить с цитированием
Старый 17.12.2011, 18:46   #4
whatever
a.k.a. Skull
Форумчанин
 
Регистрация: 17.11.2009
Сообщений: 963
По умолчанию

Во-первых, в записи нужно написать Grades:array [1..5] of integer;
Во-вторых нужно написать конструктор, иначе ничего не получится.

Цитата:
-Вывод на дисплей фамилий и номеров групп для всех студентов, включенных в массив, если средний балл студента больше введенного пользователем значения;
Код:
Readln(n);
for i:=1 to 10 do
  if n<((student[I].Grades[1]+student[I].Grades[2]+student[I].Grades[3]+student[I].Grades[4]+student[I].Grades[5])/5) then
    begin
      writeln(student[I].FIO);
      writeln(student[I].GrpNum);
    end;
Все тривиальное просто

Последний раз редактировалось whatever; 17.12.2011 в 18:53.
whatever вне форума Ответить с цитированием
Старый 17.12.2011, 19:00   #5
6666
Пользователь
 
Регистрация: 21.03.2011
Сообщений: 44
По умолчанию

Цитата:
Сообщение от whatever Посмотреть сообщение
Во-вторых нужно написать конструктор, иначе ничего не получится.


в смысле конструктор??
6666 вне форума Ответить с цитированием
Старый 17.12.2011, 20:49   #6
whatever
a.k.a. Skull
Форумчанин
 
Регистрация: 17.11.2009
Сообщений: 963
По умолчанию

Упс, ошибся, это же не класс, можно без конструктора.

А вообще вот, если интересно
Все тривиальное просто
whatever вне форума Ответить с цитированием
Старый 17.12.2011, 21:18   #7
Dilex
Пользователь
 
Аватар для Dilex
 
Регистрация: 04.11.2010
Сообщений: 76
По умолчанию

Код:
program fff;
uses crt;
type pupil=record
        name, surname : string [20];
        s1, s2, s3 : 1..5;
        end;
type myarray= array [1..5] of pupil;
var
       err: text;
       mas1:myarray;
       i, n, a: integer;
procedure vvod (var mas:myarray);
begin
write ('ВВЕДИТЕ КОЛИЧЕСТВО УЧЕНИКОВ:');
write (err,'ВВЕДИТЕ КОЛИЧЕСТВО УЧЕНИКОВ:');
readln(n);
writeln (err, n);
writeln;
for i:=1 to n do
with mas[i] do begin
writeln ('УЧЕНИК ', i , '-ЫЙ');
writeln (err,'                             ');
writeln (err,'УЧЕНИК ', i , '-ЫЙ');
write ('ФАМИЛИЯ:');
write (err,'ФАМИЛИЯ:');
readln(surname);
writeln (err, surname);
write ('ИМЯ:');
write (err,'ИМЯ:');
readln(name);
writeln (err, name);
write ('1-Я ОЦЕНКА:');
write (err,'1-Я ОЦЕНКА:');
readln(s1);
writeln (err,s1);
write ('2-Я ОЦЕНКА:');
write (err,'2-Я ОЦЕНКА:');
readln(s2);
writeln (err, s2);
write ('3-Я ОЦЕНКА:');
write (err,'3-Я ОЦЕНКА:');
readln(s3);
writeln(err,s3);
writeln;
end;
end;
procedure vivod (var mas:myarray);
begin
writeln ('ЧЬИ ФАМИЛИИ ВЫ ХОТИТЕ УВИДЕТЬ???' );
writeln ('1 - ОТЛИЧНИКИ');
writeln ('2 - ХОРОШИСТЫ');
writeln ('3 - ТРОЕШНИКИ');
readln(a);
for i:=1 to n do
with mas[i] do
if (s1=5) and (s2=5) and (s3=5) and (a=1)
Then begin
writeln('ОТЛИЧНИКИ:');
writeln(err,'ОТЛИЧНИКИ:');
writeln (surname, '   ', name);
writeln (err,surname, '   ', name);
end
else if(s1>=4) and (s2>=4) and (s3>=4) and (a=2)
then begin
writeln ('ХОРОШИСТЫ:');
writeln (err,'ХОРОШИСТЫ:');
writeln (surname,'   ',name);
writeln (err,surname,'   ',name);
end
else if (s1>=3) and (s2>=3) and (s3>=3) and (a=3)
then begin
writeln ('ТРОЕШНИКИ:');
writeln (err,'ТРОЕШНИКИ:');
writeln (surname,'   ',name);
writeln (err,surname,'   ',name);
end;
End;
begin
clrscr;
ASSIGN (err,'с:\название.txt');
REWRITE (err);
Vvod (Mas1);
Vivod (Mas1);

CLOSE(err);
Readln;
end.
вот тебе готовая прога, умеет работать как с количеством введнных учеников так и с отсевом по оценкам ! при завершении сохраняет файл куда захочешь поменять путь можно здесь :
Код:
ASSIGN (err,'с:\название.txt');
доработай как тебе будет удобно !
Dilex вне форума Ответить с цитированием
Старый 19.12.2011, 20:42   #8
6666
Пользователь
 
Регистрация: 21.03.2011
Сообщений: 44
По умолчанию

вот сделал только вот проблема постоянно выводит что фамилий нет. в чем причина?
Код:
program Project2;

{$APPTYPE CONSOLE}

uses
  SysUtils;

type
    STUDENT=record
    fam:string;
    nomer:integer;
    usp:array[1..5] of integer;
    end;
var
    A:array[1..10] of STUDENT;
    i,j,c,summ,w:integer;
    srednee,sred:real;

begin
for i:=1 to 2 do begin
writeln('введите данные',i,'-го студента');
write('номер ');readln(A[i].nomer);
write('фамилия ');readln(a[i].fam);

writeln('успеваемость (5 оценок)');
for j:=1 to 5 do begin
 write('ocenka №',j,' ');
 readln(a[j].usp[j]);
                 end;
end;

writeln('введите средний балл');
readln(sred);
for w:=1 to 2 do begin
c:=0;
summ:=0;
//j:=1;
for i:=1 to 5 do
 summ:=summ+A[w].usp[i];

 srednee:=summ/5;

 if (sred<srednee) then begin
  write(A[j].fam,' ');
  write(A[j].nomer,' ');
  inc(c);
  writeln;
  end;

                   end;
                   if c=0 then writeln('фамилий нет');

writeln;


readln;
  { TODO -oUser -cConsole Main : Insert code here }
end.
6666 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
программа тестирование студентов erik2 Помощь студентам 0 16.06.2011 13:31
Задача про рост студентов filimon_ok Помощь студентам 5 09.12.2010 22:41
Программа дистанционного обучени студентов, тестирование и оценка студента dativ2009 Помощь студентам 0 14.06.2009 15:22
Программа учёта успеваемости студентов-такое задание Amen Помощь студентам 1 31.01.2008 20:11