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

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

Вернуться   Форум программистов > Delphi программирование > Паскаль, Turbo Pascal, PascalABC.NET
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 20.03.2012, 20:13   #11
Naposaram
Пользователь
 
Регистрация: 22.11.2008
Сообщений: 52
По умолчанию

Не знаю как но вот такой код работает нормально:

Код:
program study;
type student = record
        fio: string [20];
        him: integer;
        mat: integer;
        inf: integer;
        end;
var s: student;
    k,x: longint;
    n: longint;
    fp: file of student;
begin
   assign (fp,'D:\rez.dat');
   rewrite (fp);
   writeln ('код-во студентов:');
   readln (x);
   n:=0;
   for k:=1 to x do begin
    writeln ('фамилия');
    readln (s.fio);
    writeln ('оценка по химии: ');
    readln (s.him);
    writeln ('оценка по математике: ');
    readln (s.mat);
    writeln ('оценка по информатике: ');
    readln (s.inf);
    seek (fp,n);
    write (fp,s);
   n:=n+1;
   end;
   close (fp);
end.
Следующая часть программы считываем файл, сделано написано (ниже),
вот как теперь осуществить вот это: "Определить списки студентов, кто не будет получать стипендию (у кого есть тройки), кто будет получать обычную стипендию (менее 50% отличных оценок) и повышенную стипендию (более 50% отличных оценок)."

Код:
program chitivaem;
uses crt;
Type rez = record
        fio: string [20];
        him: integer;
        mat: integer;
        inf: integer;
end;
var rezult: rez;
    fp: file of rez;
begin
 clrscr;
    assign (fp, 'D:\rez.dat'); reset(fp);
    writeln ('список студентов');
    while not eof (fp) do
     begin
     read (fp,rezult);
     //if rezult.him > 0
     if (rezult.him < 4) and (rezult.mat < 4) and (rezult.inf < 4)
     then writeln ('фамилия ',rezult.fio, ' оценки ',rezult.him,' ',rezult.mat,' ',rezult.inf);
     end;
    close (fp);
    readln;
    readln;
end.
Naposaram вне форума Ответить с цитированием
Старый 20.03.2012, 21:16   #12
Hacker19_90
Delphi Warrior
Старожил
 
Аватар для Hacker19_90
 
Регистрация: 15.08.2008
Сообщений: 2,502
По умолчанию

Проверил код!
Ругается на
Цитата:
Код:
 writeln (введите оценки по предметам по пяти бальной шкале');
Апостроф забыли!
Апостроф это '
Mess with the best, die like the rest. (с) Hackers
Лабораторные, курсовые на Delphi\Pascal\C++
ya.flex-freelance@yandex.ru Icq - 636-954-303
Hacker19_90 вне форума Ответить с цитированием
Старый 20.03.2012, 21:18   #13
Hacker19_90
Delphi Warrior
Старожил
 
Аватар для Hacker19_90
 
Регистрация: 15.08.2008
Сообщений: 2,502
По умолчанию

Что касаемо второго кода я ещё раз повторюсь
Что вот в этом
Цитата:
Код:
seek (fp,n);
Нет абсолютно никакого смысла, так это делается автоматически!
Mess with the best, die like the rest. (с) Hackers
Лабораторные, курсовые на Delphi\Pascal\C++
ya.flex-freelance@yandex.ru Icq - 636-954-303
Hacker19_90 вне форума Ответить с цитированием
Старый 20.03.2012, 22:40   #14
Naposaram
Пользователь
 
Регистрация: 22.11.2008
Сообщений: 52
По умолчанию

Цитата:
Сообщение от Hacker19_90 Посмотреть сообщение
Что касаемо второго кода я ещё раз повторюсь
Что вот в этом

Нет абсолютно никакого смысла, так это делается автоматически!
Да с записью в файл все норм работает первый пост на страничке там код рабочий. Мне бы вот это условие реализовать "Определить списки студентов, кто не будет получать стипендию (у кого есть тройки), кто будет получать обычную стипендию (менее 50% отличных оценок) и повышенную стипендию (более 50% отличных оценок)."
честно говоря даже понятия не имею как делать, там наверно ндао через if и счетчик... =) ну мастера помогайте бедному студенту =)
Naposaram вне форума Ответить с цитированием
Старый 20.03.2012, 23:03   #15
Hacker19_90
Delphi Warrior
Старожил
 
Аватар для Hacker19_90
 
Регистрация: 15.08.2008
Сообщений: 2,502
По умолчанию

ну так! Пробегайте по списку и анализируйте!
Как вы эти списки хранить будете (массив или что-то ещё)
Потом выводите ничего сложного
Mess with the best, die like the rest. (с) Hackers
Лабораторные, курсовые на Delphi\Pascal\C++
ya.flex-freelance@yandex.ru Icq - 636-954-303
Hacker19_90 вне форума Ответить с цитированием
Старый 20.03.2012, 23:27   #16
Naposaram
Пользователь
 
Регистрация: 22.11.2008
Сообщений: 52
По умолчанию

Цитата:
Сообщение от Hacker19_90 Посмотреть сообщение
ну так! Пробегайте по списку и анализируйте!
Как вы эти списки хранить будете (массив или что-то ещё)
Потом выводите ничего сложного
а как лучше? в массив наверно?
Naposaram вне форума Ответить с цитированием
Старый 20.03.2012, 23:33   #17
Hacker19_90
Delphi Warrior
Старожил
 
Аватар для Hacker19_90
 
Регистрация: 15.08.2008
Сообщений: 2,502
По умолчанию

Цитата:
а как лучше? в массив наверно?
как вам удобнее. так и лучше!
Mess with the best, die like the rest. (с) Hackers
Лабораторные, курсовые на Delphi\Pascal\C++
ya.flex-freelance@yandex.ru Icq - 636-954-303
Hacker19_90 вне форума Ответить с цитированием
Старый 21.03.2012, 17:32   #18
Naposaram
Пользователь
 
Регистрация: 22.11.2008
Сообщений: 52
По умолчанию

Цитата:
Сообщение от Hacker19_90 Посмотреть сообщение
как вам удобнее. так и лучше!
так в том то и дело что я ни каким способом не знаю =D
Naposaram вне форума Ответить с цитированием
Старый 22.03.2012, 09:23   #19
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

ладно. вернёмся к теме... (честно говоря, я думал, что Вы давно уже закончили эту простенькую задачу программировать)...

Hacker19_90, прав.
действительно можно эту задачу решать и с использованием массива и без оного.
использовать ли массив в данном случае?...
ну, это решать вам. есть и плюсы и минусы.

теперь по сути решения.
Цитата:
"Определить списки студентов, кто не будет получать стипендию (у кого есть тройки), кто будет получать обычную стипендию (менее 50% отличных оценок) и повышенную стипендию (более 50% отличных оценок)."
списки нужно формировать ОТДЕЛЬНО?
в каком виде нужны списки (текстовый файл, выдача на экран или как?)

например, рассмотрим САМЫЙ простой способ решения - списки выводятся в текстовые файлы:
STUD_NO.txt - списки студентов, кому стипендия не положена
STUD_ST.txt - кому обычная стипуха
STUD_UP.txt - повышенная стипендия


Код:
program chitivaem;
uses crt;
Type rez = record
        fio: string [20];
        him: integer;
        mat: integer;
        inf: integer;
end;

const
  n1 = 'STUD_NO.txt';  { списки студентов, кому стипендия не положена }
  n2 = 'STUD_ST.txt';  { кому обычная стипуха }
  n3 = 'STUD_UP.txt';  { повышенная стипендия }


var rezult: rez;
    fp: file of rez;
    f1, f2, f3 : text;
begin
    clrscr;
    assign (fp, 'D:\rez.dat'); reset(fp);

    Assign (f1, n1); Rewrite(f1); 
    writeln (f1, 'список студентов без стипендии:');

    Assign (f2, n2); Rewrite(f2); 
    writeln (f2, 'список студентов c обычной стипендией:');


    Assign (f3, n3); Rewrite(f3); 
    writeln (f3, 'список студентов c повышенной стипендией:');

    while not eof (fp) do
     begin
     read (fp,rezult);
     if (rezult.him < 4) or (rezult.mat < 4) or (rezult.inf < 4) 
     then {есть тройки, без стипухи остался}
        writeln (f1, 'фамилия ',rezult.fio, ' оценки ',rezult.him,' ',rezult.mat,' ',rezult.inf)
     else {стипендия положена, определим какая - обычная или повышенная }
        if (rezult.him+rezult.mat+rezult.inf)<14 
          then {обычная}
             writeln (f2, 'фамилия ',rezult.fio, ' оценки ',rezult.him,' ',rezult.mat,' ',rezult.inf)
          else {повышенная}
             writeln (f3, 'фамилия ',rezult.fio, ' оценки ',rezult.him,' ',rezult.mat,' ',rezult.inf)
     end;
    close (fp);

    {закроем файлы со списками}
    close(f1); close(f2); close(f3);
     
    readln;
    readln;
end.

Последний раз редактировалось Serge_Bliznykov; 22.03.2012 в 09:50.
Serge_Bliznykov вне форума Ответить с цитированием
Старый 26.03.2012, 18:42   #20
Naposaram
Пользователь
 
Регистрация: 22.11.2008
Сообщений: 52
По умолчанию

Цитата:
Сообщение от Serge_Bliznykov Посмотреть сообщение
ладно. вернёмся к теме... (честно говоря, я думал, что Вы давно уже закончили эту простенькую задачу программировать)...
Хех... давно не смотрел тему =) да решил её давно =) сделал, создание базы студентов, вывод результатов только не через массив и выбор из файла... вот только не сделал добавление в файл...
Naposaram вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Типизированные файлы. Чтение sz строки. Человек_Борща Общие вопросы Delphi 2 09.03.2012 21:26
Очень нужно сделать задачу в Delphi(Типизированные файлы. файлы записи) Vitalik1 Помощь студентам 1 16.12.2011 10:38
Чтение/запись объектов классов из/в бинарные файлы Гром Общие вопросы C/C++ 9 18.05.2010 22:20
Файлы: запись/чтение Proger_1 БД в Delphi 0 30.04.2010 00:36
VC++ файлы(чтение\запись) ("")(Э_Є)("") Общие вопросы C/C++ 3 16.06.2009 14:05