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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 25.04.2007, 17:39   #1
Vishez
Пользователь
 
Регистрация: 23.04.2007
Сообщений: 14
По умолчанию Работа с текст. файлом, проверка значений в нем.


Задание :
Дана информация об учениках класса некоторой школы. Она содержит сведения об имени и фамилии ученика, его отметки в последней четверти. Определить, сколько учеников класса не имеют отметок ниже четырех, и вывести список этих учеников.


Мой пример текстового файла :
4 3
Ветеранов 5 2 3
Алибаркин 4 5 5
Веселая 3 4 5
Кримухин 5 5 5
т.е. 4 фамилии, 3 экзамена.

Собственно сама прога:
Код:
 
var i,j,m,n,k: integer;
f: TextFile;
Oif: array [1..30] of string;// массив, который мы выводим
Fio: array [1..30] of string;// исходный массив фамилий из файла
Oc: array [1..30,1..5] of integer;//массив оценок
begin
AssignFile (f,Fio);
Reset(f);
Readln(f,n,m);
for i:=1 to n do
begin
Readln(f,Fio[i]);//читаем фамилии
k:=0;//обнуляем счетчик
for j:=1 to m do
begin
Readln(f,Oc[i,j]);//читаем оценки
If Oc[i,j] >=4 then k:=k+1;//проверяем, какие оценки больше 4, если есть, то счетчик + 1

end;
If k:=m then Oif[i]:=Fio[i];//если счетчик норм то фамилия проходит
end;
//вывести Oif;
end;
end.
Но по-моему я точно что-то забыл... Ибо не работает -)

Последний раз редактировалось AVer; 07.05.2007 в 21:55.
Vishez вне форума Ответить с цитированием
Старый 25.04.2007, 18:12   #2
Vishez
Пользователь
 
Регистрация: 23.04.2007
Сообщений: 14
По умолчанию

Вывод фамилии, наскока я понял, в мемо.
Vishez вне форума Ответить с цитированием
Старый 26.04.2007, 14:29   #3
Vishez
Пользователь
 
Регистрация: 23.04.2007
Сообщений: 14
По умолчанию

Что, никто не знает? -((
Vishez вне форума Ответить с цитированием
Старый 26.04.2007, 17:12   #4
Carbon
JAVA BEAN
Участник клуба
 
Аватар для Carbon
 
Регистрация: 22.04.2007
Сообщений: 1,329
По умолчанию

Фамилии находятся в одной строке с оценками, следовательно readln загоняет всю строку в фамилию прямо с оценками.

Выход: переместить оценки на следующую строку и поменять

Readln(f,Oc[i,j]);//читаем оценки

на

Read(f,Oc[i,j]);//читаем оценки
Carbon вне форума Ответить с цитированием
Старый 26.04.2007, 17:16   #5
Vishez
Пользователь
 
Регистрация: 23.04.2007
Сообщений: 14
По умолчанию

Хм. Не понял )
Vishez вне форума Ответить с цитированием
Старый 26.04.2007, 17:19   #6
Carbon
JAVA BEAN
Участник клуба
 
Аватар для Carbon
 
Регистрация: 22.04.2007
Сообщений: 1,329
По умолчанию

readln считывает всю строку.

Поэтому получилось:
1 фамилия

Ветеранов 5 2 3

1 оценка

Алибаркин 4 5 5

2 оценка

Веселая 3 4 5

3 оценка

Кримухин 5 5 5
Carbon вне форума Ответить с цитированием
Старый 26.04.2007, 17:41   #7
Vishez
Пользователь
 
Регистрация: 23.04.2007
Сообщений: 14
По умолчанию

Кк, понятно...
Не поможешь дописать её до конца полностью, чтоб работала?
Vishez вне форума Ответить с цитированием
Старый 26.04.2007, 17:48   #8
Carbon
JAVA BEAN
Участник клуба
 
Аватар для Carbon
 
Регистрация: 22.04.2007
Сообщений: 1,329
По умолчанию

Код:
  var i,j,m,n,k,cnt,oc: integer;
       f: TextFile;
       Oif: array [1..30] of string;// массив, который мы выводим
       Fio: array [1..30] of string;// исходный массив фамилий из файла

begin

cnt:=0; //Количество записей в Oif

AssignFile (f,Fio);
Reset(f);

Readln(f,n,m);

for i:=1 to n do
begin

Readln(f,Fio[i]);//читаем фамилии

k:=0;//обнуляем счетчик

for j:=1 to m do
begin

Read(f,oc);//читаем оценки
If oc >=4 then k:=k+1;//проверяем, какие оценки больше 4, если есть, то  счетчик + 1

end;

If k=m then 
begin

cnt:=cnt+1;
Oif[cnt]:=Fio[i];//если счетчик норм то фамилия проходит

end;
end;

for i:=1 to cnt do
Writeln(Oif[i]);

end.
Вроде должно работать...
Carbon вне форума Ответить с цитированием
Старый 26.04.2007, 18:39   #9
Vishez
Пользователь
 
Регистрация: 23.04.2007
Сообщений: 14
По умолчанию

Не-а -(
Ни в какую.
Vishez вне форума Ответить с цитированием
Старый 29.04.2007, 14:02   #10
bill
Форумчанин
 
Аватар для bill
 
Регистрация: 26.04.2007
Сообщений: 440
По умолчанию

У меня есть похожая программа дома. Просто скинь мне сообщение по почте чтобы я не забыл если чё. izgonitel@yandex.ru
bill вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Работа с ini файлом workres Общие вопросы C/C++ 5 24.04.2011 22:25
Работа с файлом в C Mishka Помощь студентам 2 22.07.2008 13:28
проверка значений в ListBox Arteom Компоненты Delphi 10 26.05.2008 12:32
работа с txt файлом ShenDy Общие вопросы C/C++ 1 08.04.2008 22:55
Работа с файлом на С++ For Dos KORT Помощь студентам 2 06.10.2007 21:20