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

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

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

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

Помогите, пожалуйста, найти ошибку

  • Автор темы Автор темы Vikesiya
  • Дата начала Дата начала

Vikesiya

Ученик
Регистрация
5 Окт 2014
Сообщения
4
Реакции
0
Баллы
0
Помогите, пожалуйста, найти ошибку

Весь день пытаюсь,не пойму что не так делаю..Надо написать именно как я, двумя программами.
задание:1.Составить файл,где будет записана фамилия,имя,отчество,год рождения,пол,оценка по физике,математике,информатике,стипендия. (надеюсь нормально составила задание,хотя по программа наверно понятно, но эта программа у меня вроде правильная,со второй не выходит...)
2. Для студентов имеющих "5" по физике,вывести фамилию,имя,отчество,средний балл и стипендию. (из составленного нами файла)

Первая:
HTML:
Program project;
Type
Studdan=record
                 FIO:string[50];
                 GR:integer;
                 Pol:string[2];
                 MOF:integer;
                 MOM:integer;
                 MOI:integer;
                 Step:real;
                 end;
Var
   fname:string[40];
   anheta:studdan;
   fp:file of studdan;
   n:char;
Begin
   Writeln('Введите имя обр файла');
   Readln (fname);
   assign(fp,fname);
   rewrite(fp);
   n:= 'y';
   while n='y' do
     begin
        write('ФИО:');
        readln(anheta.FIO);
        write('год рождения:');
        readln(anheta.GR);
        write('пол:');
        readln(anheta.POL);
        write('оценка по физике:');
        readln(anheta.MOF);
        write('ценка по математике:');
        readln(anheta.MOM);
        write('оценка по информатике:');
        readln(anheta.MOI);
        write('стипендия:');
        readln(anheta.STEP);
        write(fp,anheta);
        write('Продолжать ввод?(y/n)');
        readln(n);
       end;
  close(fp);
end.

Вторая:
HTML:
Program project;
Type
Studdan=record
                 FIO:string[50];
                 GR:integer;
                 Pol:string[2];
                 MOM:integer;
                 MOI:integer;
                 Step:real;
                 SR:real;
                 MOF:integer;
                 end;
Var
   t,fname:string[40];
   anheta:studdan;
   fp:file of studdan;
   k:integer;
Begin
   Writeln('Введите имя обр файла');
   Readln (fname);
   assign(fp,fname);
   reset(fp);
   writeln('искомые студенты');
   Readln (t);
   k:=0;
   while not eof(fp) do
begin
       read(fp,anheta);
       if(anheta.MOF=5) then
 BEGIN
anheta.SR:=((anheta.MOF+anheta.MOM+anheta.MOI)/3);
 K:=K+1;
 writeln(anheta.FIO,anheta.SR,anheta.STEP);    
end;
end;
if k=0 then
       writeln('искомых студентов нет');
       close(fp);
       readln;
end.
 
Ну так всё ясно: у Вас в двух программах - разные записи, отличающиеся количеством и расположением полей! Абсолютно недопустимо. Запись во второй программе должна быть ПОЛНОСТЬЮ идентична записи в первой. Средний балл можно считать как простую переменную, нечего ему вообще в записи делать. Т.е. нашли студента, у которого 5 по физике, ну и сосчитайте да выведите среднюю оценку - в запись-то зачем ее пихать?
 
Назад
Сверху