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

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

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

> Задачи, в них есть не точность, помогите исправить
Geroi
сообщение 5.05.2003 17:35
Сообщение #1


Новичок
*

Группа: Пользователи
Сообщений: 29

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


1) "Файл f содержит записи следующей структуры:
- имя студента;
- пол;
- рост;
- оценки по трем экзаменам.
Написать функцию TASK_3_1 (f), проверяющую, есть ли среди юношей отличники."
Вот решение этой задачи:
Код
uses wincrt;
type student=record name:string[11];
                   male:char;    {ж - жен, м - муж}
                   height:byte;
                   marks:array[1..3] of 2..5;
             end;
    myfile=file of student;
var  f:myfile;
    vova:student;
    var i,j:byte;
procedure input(var f:myfile);
begin
    assign(f,'C:stud.txt');
    rewrite(f);
    for i:=1 to 3 do
    begin
        with vova do
        begin
                  write('Введите фамилию студента: ');
                  readln(name);
                  write('Введите пол студента (м или ж): ');
                  readln(male);
                  write('Введите рост студента: ');
                  readln(height);
                  for j:=1 to 3 do
                  begin
                       write('Введите оценку по ',j,'ому предмету: ');
                       readln(marks[j])
                  end
        end;
    write(f,vova)
    end;
    close(f)
end;
procedure task_3_4(var f:myfile);
var ocenka,k:byte;
begin
    reset(f);
    ocenka:=0;
    for i:=1 to 2 do
    begin
         with vova do
         begin
              k:=0;
              read(f,vova);
              for j:=1 to 3 do
              begin
                     if (marks[j]=4) or (marks[j]=5) then
                   begin
                        inc(k)
                   end;      end;
              if k=3 then
                 writeln('---> ',name,' имеет положительные оценки ')
              else
              inc(ocenka)
          end
    end;
    if ocenka=2 then
       writeln('---> Студентов с положительными оценкам нет');
    close(f)
end;
begin
    input(f);
    task_3_4(f)
    end.

В этой задаче когда вводишь данные : отличник, троешник, отличник, Он выводит первого отличника, а третьего не выводит. !!!!! и ещё есть некторые случаи.!
Тут где-то явно маленький касяк. Посмотрите пожалуйста, подскажите.

Сообщение отредактировано: volvo - 17.12.2004 12:45
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов
___ALex___
сообщение 6.05.2003 11:40
Сообщение #2


Бывалый
***

Группа: Пользователи
Сообщений: 282

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


файл "a.txt" сначала создай и напиши туда что-нибудь
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

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


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

 



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