Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

Форум «Всё о Паскале» _ Задачи _ Записи

Автор: Светлана 15.12.2006 3:41

Здравствуйте! У меня 2 задачки по записям... Помогите пож-та немного исправить...
1) Среди работников данного предприятия найти тех, чья заработная плата за месяц является ниже средней по предприятию, а также распечатать список тех, кто проработал на предприятии более 10 лет с указанием их фамилии, зарплаты, стажа работы и должности.
Вот мой вариант решения...

Program Zapisi_7;
type
rabotnik_predpriyatiya=record
stazh:integer;
zar:integer;
fam:string[15];
dolzh:string[10];
end;
var
i,n: integer;
anketa: rabotnik_predpriyatiya;
r: file of rabotnik_predpriyatiya;
begin
assign(r,'anketa.dat'); reset( r ); { -> вот тут у меня высвечивается ошибка: File not found }
write('Skolko dannyh vvodit');
readln(n);
for i:=1 to n do
begin
write('Vvedite familiu');
readln(anketa.fam);
write('Vvedite stazh raboty');
readln(anketa.stazh);
write('Vvedite velichinu mes. zarabotka');
readln(anketa.zar);
write('Vvedite dolzhnost');
readln(anketa.dolzh);
write(r,anketa);
end;
close( r );
end.

Как в этой проге написать, чья зар. плата за месяц явл. ниже средней по предприятию???И как вывести фамилии тех, кто проработал более 10 лет? Помогите пож-та...

2) Распечатать фамилии тех учеников класса, которые являются хорошистами и отличниками по итогам года. Также узнать, насколько их средний балл отличается от среднего балла класса.
Program Zapisi_12;
type uchenik=record
fam:string[15];
ucheb_god:integer;
har:string[20];
end;
var a:array[1..10] of uchenik;
fin,fout:text;
i,j:integer;
begin
assign(fin,'uch.pas');
reset(fin); { -> тут опять эта же ошибка: File not found }
i:=0;
repeat
i:=i+1;
with a[i] do
readln(fin,fam,ucheb_god,har);
until eof(fin);
close(fin);
assign(fout,'hor_i_otl.pas');
rewrite(fout);
for j:=1 to i do
if a[i].har='horoshisty i otlichniki' then
writeln(fout,a[i].fam);
close(fout);
end.

И я не знаю как сравнить эти средние баллы...

Заранее большое спасибо за помощь!

Автор: klem4 15.12.2006 3:53

начнем с начала ...

Цитата
assign(r,'anketa.dat'); reset®; { -> вот тут у меня высвечивается ошибка: File not found }


Потому что ты пытаешь открыть несуществующий (пока) файл для чтения, а хочешь, видимо для записи (rewrite а не reset)

Далее после заполнения файла, открываешь его уже для чтения (reset) и считаешь сначала среднюю зарплату, попутно выводя работников со стажем > 10


sr := 0;

reset(f);

while not(eof(f)) do begin

read(f, anketa);

sr := sr + anketa.zar;

if anketa.stazh > 10 then begin
// выводишь нужные данные по работнику (anketa.fam например)
end;

end;

sr := sr / FileSize(f);
(* на всякий случай можно проверить не равно ли FileSize(f) == 0,
FileSize(f) - количество записей в файле *)

(*
далее еще раз переоткрываешь файл (reset) и таким же циклом идешь по файлу,
проверяя наличие работников с зарплатой ниже средней

*)

reset(f);

while not(eof(f)) do begin

read(f, anketa);

if anketa.zar < sr then // зарплата этого работника ниже средней
end;






ps

http://forum.pascal.net.ru/index.php?showtopic=9198
http://forum.pascal.net.ru/index.php?showtopic=3584

Автор: Светлана 15.12.2006 4:34

спасибо! Но в примерах, которые нам давали, было сначала assign, а потом сразу шло reset... Вот... может чет я просто не допираю... (извините, а во второй задаче также будет?)....

Автор: Светик 15.12.2006 17:33

smile.gif спасибо большое! Так и надо было, чтобы писалось rewrite!

Автор: Светлана 22.12.2006 12:27

Вот, я переделала 1-ю задачку, она так то работает, но когда я ввожу все данные, она не выводит никаких данных... может я просто не даю команду для этого? Помогите плиз ошибку найти...


Program Zapisi_7;
type
rabotnik_predpriyatiya=record
stazh:integer;
zar:integer;
fam:string[15];
dolzh:string[10];
end;
var
i,n: integer;
sr:real;
anketa: rabotnik_predpriyatiya;
r: file of rabotnik_predpriyatiya;
begin
assign(r,'anketa.dat');
rewrite®;
write('Skolko dannyh vvodit');
readln(n);
for i:=1 to n do
begin
write('Vvedite familiu');
readln(anketa.fam);
write('Vvedite stazh raboty');
readln(anketa.stazh);
write('Vvedite velichinu mes. zarabotka');
readln(anketa.zar);
write('Vvedite dolzhnost');
readln(anketa.dolzh);
write(r,anketa);
end;
close®;
sr:=0;
reset®;
while not (eof®) do begin
read(r,anketa);
sr:=sr+anketa.zar;
if anketa.stazh>10 then begin
writeln('anketa.fam');
writeln('anketa.zar');
writeln('anketa.stazh');
writeln('anketa.dolzh');
end;
end;
sr:=sr/FileSize®;
reset®;
while not(eof®) do begin
read(r,anketa);
if anketa.zar<sr then writeln ('Zarplata rabotnika nizhe srednei');
end;
end.


заранее большое спасибо!

Автор: Bokul 22.12.2006 12:37

Попробуй перед последнем end-ом поставить процедуру readln. smile.gif
PS советую при вводе данных вместо write использовать writeln. smile.gif

Автор: Светлана 22.12.2006 13:12

Цитата(Bokul @ 22.12.2006 8:37) *

Попробуй перед последнем end-ом поставить процедуру readln. smile.gif
PS советую при вводе данных вместо write использовать writeln. smile.gif


пасиб! У меня стало вот что выводиться!!! Ну я там фамилии, должности и т.д. ввожу, потом выводится
anketa.fam
anketa.zar
anketa.stazh
anketa.dolzh
Zarplata rabotnika nizhe srednei

и все....

Автор: Bokul 22.12.2006 13:16

Ну конечно же. smile.gif
вместо

         
writeln('anketa.fam');
writeln('anketa.zar');
writeln('anketa.stazh');
writeln('anketa.dolzh');


поставь
         
writeln(anketa.fam);
writeln(anketa.zar);
writeln(anketa.stazh);
writeln(anketa.dolzh);


wink.gif

Автор: Светлана 22.12.2006 13:51

О! теперь нормально! Спасибо огромное... Но вот насчет Zarplata rabotnika nizhe srednei - это так и остается в самом конце, и ниче не выводится!... я не знаю, что надо исправить.....

Автор: volvo 22.12.2006 15:51

А что бы ты хотела, чтобы выводилось? Фамилия работника, у которого зарплата ниже средней? Тогда вот так:

         while not(eof( R )) do begin
read(r, anketa);
if anketa.zar<sr then writeln (anketa.fam, ' : Zarplata rabotnika nizhe srednei');
end;
Или тебе придется сначала пройтись в цикле по файлу для вычисления средней зарплаты, и только потом вообще выводить все данные:

...
sr:=0;
reset( R );
while not eof( R ) do begin
read(R, anketa); sr := sr + anketa.zar;
end;
sr := sr / FileSize( R );

reset( R );
while not eof( R ) do begin
read(r,anketa);
if anketa.stazh>10 then begin
writeln(anketa.fam);
writeln(anketa.zar);
writeln(anketa.stazh);
writeln(anketa.dolzh);
end;

if anketa.zar < sr then writeln (anketa.fam, ': Zarplata rabotnika nizhe srednei');

end;
...

Автор: Светлана 23.12.2006 0:47

Хорошо, спасибо большое! Так и попробую сделать!!!!

Автор: Светлана 23.12.2006 2:33

У меня еще вот такой вопрос: мне не надо самой вводить данные!!!! Надо как-то связать это с файлом!!! Как это сделать? Подскажите пож-та.... unsure.gif

Автор: мисс_граффити 23.12.2006 2:37

А в файле они откуда должны браться?
Или ты хочешь один раз заполнить, а потом работать с готовым?

Автор: Светлана 23.12.2006 2:57

Цитата(мисс_граффити @ 22.12.2006 22:37) *

А в файле они откуда должны браться?
Или ты хочешь один раз заполнить, а потом работать с готовым?


Да, вводить самой данные нельзя (так сказал препод)... значит надо 1 раз его заполнить, и работать с ним! А как вот это сделать, не могу сообразить...

Автор: мисс_граффити 23.12.2006 3:10

так у тебя половина программы - заполнение, а вторая половина - основная работа.

assign(r,'anketa.dat');
rewrite®; {начало}
write('Skolko dannyh vvodit');
readln(n);
for i:=1 to n do
begin
write('Vvedite familiu');
readln(anketa.fam);
write('Vvedite stazh raboty');
readln(anketa.stazh);
write('Vvedite velichinu mes. zarabotka');
readln(anketa.zar);
write('Vvedite dolzhnost');
readln(anketa.dolzh);
write(r,anketa);
end;
close®;{конец}

вот этот кусок отвечает за заполнение. если ты его уберешь - получишь программку, работающую с готовым файлом.

Автор: Светлана 23.12.2006 3:24

спасибки! Так и сделаю!!!! yes2.gif

Автор: Светлана 23.12.2006 12:40

Я удалила выделенную часть, и у меня чет какая-то ошибка выдается: Error 207: Invalid floating point operation. Я ее не могу исправить, потому что курсор не мигает, где есть ошибка... Это значит, что ошибка не в какой-то определенной строке?

Автор: Танкистка 23.12.2006 14:31

Цитата(Светлана @ 23.12.2006 0:57) *

Да, вводить самой данные нельзя (так сказал препод)... значит надо 1 раз его заполнить, и работать с ним! А как вот это сделать, не могу сообразить...

Надо не через паскаль ввести данные... а непосредственно в сам файл.. т.е. ты создаешь файл на диске и указываешь в проге путь к нему... а файл этот, например блокнот, заполняешь уже сама.. в ручную... т.е. если у тебя фамилия string[15], то ты должна хоть как отвести под нее эти 15 ячеек... и т.д.

Автор: мисс_граффити 23.12.2006 14:45

assign(r,'anketa.dat'); 

должно остаться! (я тебе поэтому начало и конец отметила)
прикрепи, что получилось...
Танкистка, речь про типизированные файлы. Их все же лучше заполнять не через блокнот (как текстовые). Имхо.

Автор: Светлана 23.12.2006 20:57

Цитата(Танкистка @ 23.12.2006 10:31) *

Надо не через паскаль ввести данные... а непосредственно в сам файл.. т.е. ты создаешь файл на диске и указываешь в проге путь к нему... а файл этот, например блокнот, заполняешь уже сама.. в ручную... т.е. если у тебя фамилия string[15], то ты должна хоть как отвести под нее эти 15 ячеек... и т.д.


Ха, привет!!! ТанюХа, молодец!!!!! good.gif Спасибо! То есть я в блокноте пишу эти данные (англ. буквами...) сама, да?


Цитата(мисс_граффити @ 23.12.2006 10:45) *

assign(r,'anketa.dat'); 

должно остаться! (я тебе поэтому начало и конец отметила)
прикрепи, что получилось...
Танкистка, речь про типизированные файлы. Их все же лучше заполнять не через блокнот (как текстовые). Имхо.


вот то что получилось...

Прикрепленный файл  ZAPIS.PAS ( 876 байт ) Кол-во скачиваний: 558


Автор: volvo 23.12.2006 21:16

Цитата(Светлана @ 23.12.2006 15:57)
Ха, привет!!! ТанюХа, молодец!!!!!

Ну да, как же... Молодец... Особенно с вот таким описанием:
r: file of rabotnik_predpriyatiya;
тебе ее совет как раз поможет... запутаться еще больше...

Типизированные файлы (я повторяю в сотый раз!!!) - это МАШИННОЕ представление данных...

Цитата(Танкистка @ 23.12.2006 9:31)
т.е. если у тебя фамилия string[15], то ты должна хоть как отвести под нее эти 15 ячеек... и т.д.
А ты нулевой символ (где длина строки хранится) тоже будешь сама устанавливать? А значения Integer в форме, понятной компилятору?

Автор: Светлана 23.12.2006 21:21

Цитата(volvo @ 23.12.2006 17:16) *

Ну да, как же... Молодец... Особенно с вот таким описанием:
r: file of rabotnik_predpriyatiya;
тебе ее совет как раз поможет... запутаться еще больше...

Типизированные файлы (я повторяю в сотый раз!!!) - это МАШИННОЕ представление данных...

А ты нулевой символ (где длина строки хранится) тоже будешь сама устанавливать? А значения Integer в форме, понятной компилятору?


а у меня значит эта строка неверная?


r: file of rabotnik_predpriyatiya;



Автор: мисс_граффити 23.12.2006 21:42

да нормально все с этой строкой!
Просто Танюха путает типизированные и текстовые файлы.
Не, ну если хочешь, заполняй через блокнот. Но я не знаю, как потом твоя программа интерпретирует содержимое файла...

     rewrite( R );
close( R );

Знаешь, что ты этим делаешь?
Открываешь файл для записи (стирая все, что там было), и, ничего не записывая, тут же закрываешь.
Вопрос на засыпку: зачем?



® ®

Автор: Светлана 24.12.2006 4:30

Я переделала эту задачу!!!
Вот ее формулировка: "Среди работников данного предприятия найти тех, чья заработная плата за месяц является ниже средней по предприятию, а также распечатать список тех, кто проработал на предприятии более 10 лет с указанием их фамилии, зарплаты, стажа работы и должности."

Первая часть этой программы:

Прикрепленный файл  ZAP.PAS ( 748 байт ) Кол-во скачиваний: 519


она как бы должна просто выдавать данные о работниках. Но у меня там ошибка выдается, где написано

Reset(rp);{File not found}
... Почему так, я не знаю... Решала по алгоритму..


А вот вторая часть:

Прикрепленный файл  ZAPP.PAS ( 813 байт ) Кол-во скачиваний: 496


эта программа производит считывание инф-ции из типизированного файла spisok, который был создан и заполнен информацией с помощью программы из 1-й части.

Но и тут у меня такая же ошибка высвечивается!!!

Помогите пож-та их исправить...

Автор: мисс_граффити 24.12.2006 4:33

первая:

Program Zapisi_7;

type
rabotnik_predpriyatiya=record
fam:string[15];
name:string[10];
dolzh:string[15];
stazh:integer;
zar:integer;
end;

var
rp:file of rabotnik_predpriyatiya;
v:rabotnik_predpriyatiya;
k:char;

begin
Assign(rp,'c:\spisok');
{$I-}
Reset(rp);
{$I+}
if IOResult<>0 then rewrite(rp);
repeat
writeln('Vvedite familiu rabotnika'); readln(v.fam);
writeln('Vvedite imya rabotnika'); readln(v.name);
writeln('Vvedite dolzhnost rabotnika'); readln(v.dolzh);
writeln('Vvedite stazh rabotnika'); readln(v.stazh);
writeln('Vvedite zarplaty rabotnika'); readln(v.zar);
write(rp,v);
writeln('Budete prodolzhat vvod dannyh?(da/net)'); readln(k);
until k='N';
readln
end.

Автор: Светлана 24.12.2006 14:50

Спасибо! Теперь у меня программа запускается! А скажите пож-та, что означает {$I-} и {$I+} ? Вот еще какой вопрос... Вот, у меня программа запустилась... теперь я САМА должна там все данные занести или нет?

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

А, я вторую часть немного подправила, поэтому ее прикреплю.

Прикрепленный файл  ZAPP.PAS ( 890 байт ) Кол-во скачиваний: 443


заранее спасибо!

Автор: klem4 24.12.2006 15:02

Цитата
А скажите пож-та, что означает {$I-} и {$I+} ?


http://forum.pascal.net.ru/index.php?showtopic=3895&hl=%C4%E8%F0%E5%EA%F2%E8%E2%FB+%EA%EE%EC%EF%E8%EB%FF%F2%EE%F0%E0

Автор: мисс_граффити 24.12.2006 17:31

 i:=0;
writeln('Ukazhite familiu rabotnika');
readln(fff);
repeat
Seek(rp,i); {а зачем ты это делаешь? после read указатель автоматически перейдет на след. запись}
read(rp,v);
i:=i+1;
if v.fam=fff then
writeln('rabotnik',v.fam);
if v.stazh>10 then
begin
writeln('rabotnik', v.fam, '', v.name);
writeln('dolzhnost', v.dolzh);
writeln('ego stazh', v.stazh);
writeln('poluchaet zarplatu', v.zar);
end;
sr:=0;
sr:=sr+v.zar; {средняя - это же не сумма, а сумма/количество, правда? поэтому, видимо, придется за 2 прохода: сначала считать сумму и количество, потом делить, а потом заново идти по файлу и смотреть, у кого меньше}
if v.zar<sr then writeln('Zarplata','', v.fam,'','nizhe srednei');
until eof(rp);

прикрепи файлик, который получился в результате работы с первой...

Автор: Светлана 24.12.2006 17:48

Цитата(мисс_граффити @ 24.12.2006 13:31) *

прикрепи файлик, который получился в результате работы с первой...


Вот он:

Прикрепленный файл  ZAP.PAS ( 766 байт ) Кол-во скачиваний: 525


Цитата(мисс_граффити @ 24.12.2006 13:31) *

 
Seek(rp,i); {а зачем ты это делаешь? после read указатель автоматически перейдет на след. запись}
read(rp,v);




Значит эту строчку вообще не надо, да?



Автор: мисс_граффити 24.12.2006 17:50

я не про то smile.gif
не про исходники, а про spisok

Автор: Светлана 24.12.2006 17:50

Цитата(мисс_граффити @ 24.12.2006 13:31) *

 
sr:=0;
sr:=sr+v.zar; {средняя - это же не сумма, а сумма/количество, правда? поэтому, видимо, придется за 2 прохода: сначала считать сумму и количество, потом делить, а потом заново идти по файлу и смотреть, у кого меньше}
if v.zar<sr then writeln('Zarplata','', v.fam,'','nizhe srednei');
until eof(rp);



а до нахождения средней зарплаты у меня правильно написано???

Автор: мисс_граффити 24.12.2006 18:18

похоже на правду на первый взгляд.
если ты прикрепишь файлик, с которым работаешь, я смогу сказать точнее.

Автор: Светлана 24.12.2006 23:47

Цитата(мисс_граффити @ 24.12.2006 14:18) *

похоже на правду на первый взгляд.
если ты прикрепишь файлик, с которым работаешь, я смогу сказать точнее.


ага, прикреплю!

Первая часть:

Прикрепленный файл  ZAP.PAS ( 766 байт ) Кол-во скачиваний: 475


и вторая часть:

Прикрепленный файл  ZAPP.PAS ( 890 байт ) Кол-во скачиваний: 511


Вот это все к первой задаче (только во второй части про среднюю зар. плату я еще не исправляла)...

Автор: мисс_граффити 24.12.2006 23:53

и где обещанный spisok, с которым ты работаешь?
если все нормально, после запуска первой части у тебя должен создаваться файл spisok
вот прикрепи именно его

Автор: Танкистка 25.12.2006 0:44

Цитата(volvo @ 23.12.2006 19:16) *

Ну да, как же... Молодец... Особенно с вот таким описанием:
r: file of rabotnik_predpriyatiya;
тебе ее совет как раз поможет... запутаться еще больше...
Типизированные файлы (я повторяю в сотый раз!!!) - это МАШИННОЕ представление данных...


Простите.. не кричи на меня так.... wacko.gif Я не обратила внимания на эту строку... просто у меня немнога похожая задача была, и у меня просто был txt файл..ну я и все про него и думала...

Автор: Светлана 25.12.2006 2:14

Цитата(мисс_граффити @ 24.12.2006 19:53) *

и где обещанный spisok, с которым ты работаешь?
если все нормально, после запуска первой части у тебя должен создаваться файл spisok
вот прикрепи именно его


ааа, поняла! Блиин!!! Он почему-то не прикрепляется!!!!.... (я делаю обзор, потом с:\spisok, добавить файл.. и все, ниче у меня не прикрепляется...)


вот, у меня только так получилось прикрепить....
Прикрепленный файл  SPISOK.txt ( 141 байт ) Кол-во скачиваний: 571

там у меня высвечивается фамилия, имя, должность, а стажа и зарплаты нет. Так и должно быть?


Автор: мисс_граффити 25.12.2006 2:27

возможно... блокнот строковую информацию понимает, а вместо чисел рисует квадратики.
вроде как работает. (то, что не касается подсчета средней. со средней - бред полнейший).
и мы же вроде договорились seek убрать.

Автор: Светлана 25.12.2006 9:59

Цитата(мисс_граффити @ 24.12.2006 22:27) *

то, что не касается подсчета средней. со средней - бред полнейший.
и мы же вроде договорились seek убрать.


Ага, я убрала Seek. И подсчет средней я немного изменила... но мне так кажется, что у меня все неправильно...

Прикрепленный файл  ZAPIS.PAS ( 1.22 килобайт ) Кол-во скачиваний: 535

Автор: Светлана 25.12.2006 20:05

blink.gif эх, информатика - это жесть!

Автор: мисс_граффити 26.12.2006 1:02

blink.gif
"нифига не поняла" (с)
смотри, как проще всего сделать:
открываешь файл и идешь по нему (пока не конец файла), считая сумму зарплат и количество работников (хотя количество можно не считать: если файл типизированный, то sizeof(f) как раз даст это число).
считаешь среднее.
возвращаешься в начало файла (закрываешь и открываешь или делаешь seek(f,0))
дальше идет твой цикл (вот где про стаж и т.д.), в который добавляешь одно-единственное условие: если зарплата меньше средней...

Автор: Светлана 26.12.2006 16:00

mega_chok.gif
Здравствуйте!!!
Извините пож-та... я ваще натупила с этими задачами!!! До меня ток недавно доперло как надо их делать!!!

Вот первая задачка: "Среди работников данного предприятия найти тех, чья заработная плата за месяц является ниже средней по предприятию, а также рампечатать список тех, кто проработал на предприятии более 10 лет с указанием их фамилии, зарплаты, стажа работы и должности."

И вот как я ее решила!!!

Сначала я напечатала список работников: вот...

Прикрепленный файл  SPISOK.PAS ( 203 байт ) Кол-во скачиваний: 535


а вот сама программа:

Прикрепленный файл  RAB_PRED.PAS ( 1 килобайт ) Кол-во скачиваний: 530


у меня вроде все работает, но вот ПРОБЛЕМА в следующем: у меня никакие значения не выводятся во второй список... он появляется после запуска программы, но почему-то пустой... Помогите пож-та разобраться...




и вот вторая задачка: "Распечатать фамилии тех учеников класса, которые являются хорошистами и отличниками по итогам года. Также указакть, насколько их средний балл отличается от среднего балла класса".

Вот мое решение: Сначала я составила список этих учеников:

Прикрепленный файл  uch1.txt ( 208 байт ) Кол-во скачиваний: 536


а вот сама прога:

Прикрепленный файл  UCHENIK.PAS ( 520 байт ) Кол-во скачиваний: 541


и у меня опять такая же проблема: Второй файл, который открывается, он опять пустой.. в чем же ошибка? И я вот еще не знаю, как про средний балл решить.... Помогите плиз... Заранее спасибо!

Автор: мисс_граффити 26.12.2006 17:34

а ты в него где-то что-то записываешь, чтобы он был не пустым?
я не вижу, где и что...

Автор: volvo 26.12.2006 17:37

Светлана, я еще раз повторяю:

readln(fin,fam,nam,ocenka);
не будет читать данные так, как ты этого хочешь...

Автор: Светлана 26.12.2006 18:42

Цитата(volvo @ 26.12.2006 13:37) *

Светлана, я еще раз повторяю:
readln(fin,fam,nam,ocenka);
не будет читать данные так, как ты этого хочешь...


извиняюсь, а как надо, чтобы читало? или на какую ссылку зайти, чтобы прочитать?

Автор: Светлана 27.12.2006 20:25

Цитата(мисс_граффити @ 26.12.2006 13:34) *

а ты в него где-то что-то записываешь, чтобы он был не пустым?
я не вижу, где и что...


эээ, не поняла... у меня как бы 2 файла: 1-fin, который ссылается на тот список, который я сама составляю! А второй - fout - в него чтоли значения не сами должны выводиться???

А вчера я их еще решала, дак у меня во второй файл выводятся значения в обеих прогах, но почему-то только значения последнего, кто написан в списке....

Автор: мисс_граффити 27.12.2006 21:55

Цитата
А второй - fout - в него чтоли значения не сами должны выводиться???

blink.gif
Что значит - сами?
Ты же компьютеру нигде не сообщаешь, что туда должно вводиться. Откуда он знает, ЗАЧЕМ ты делаешь rewrite? А вывод весь у тебя идет только на экран...

Автор: Светлана 27.12.2006 23:48

Цитата(мисс_граффити @ 27.12.2006 17:55) *

Что значит - сами?
Ты же компьютеру нигде не сообщаешь, что туда должно вводиться. Откуда он знает, ЗАЧЕМ ты делаешь rewrite? А вывод весь у тебя идет только на экран...


Эээээ, ну как объяснить... Ну дак ведь я вроде первую часть описала, все, закрыла файл... Потом описываю, что там во втором файле надо делать... И тож его закрываю... Значит фамилии и др. из первого списка (который я сама писала), которые удовлетворяют условиям из второго файла, должны переноситься во второй список..... Я вот так понимаю...


Ну я не знаю... вот, смотрите, работающая программа...
"Распечатать список тех учителей школы, которые преподают мат-ку и информатику, указать их стаж работы и недельную нагрузку".

Это сам список
Прикрепленный файл  UCHIM.TXT ( 511 байт ) Кол-во скачиваний: 521


это прога
Прикрепленный файл  Uchitelya.pas ( 735 байт ) Кол-во скачиваний: 516


и второй список..
Прикрепленный файл  SPISOK.TXT ( 294 байт ) Кол-во скачиваний: 512


Я про учеников написала тоже самое, но у меня второй список пустой при выводе!!!

вот мой список!
Прикрепленный файл  UCH1.PAS ( 212 байт ) Кол-во скачиваний: 522


вот прога!
Прикрепленный файл  UCHENIK.PAS ( 518 байт ) Кол-во скачиваний: 528


вот список, в которй должно выводиться, но он пустой...



вот список, в который должно выводиться, но он пустой!
ха.. он даж не прикрепляется.. ну если прогу запустить, то он откроется!...

Автор: мисс_граффити 28.12.2006 0:59

цитата из твоей работающей программы:

Цитата
writeln(fout,a[j].fam,a[j].nam,a[j].otch,a[j].predmet,a[j].stazh,a[j].nagruzka);

то есть ты указываешь, что надо писать в этот файл!!!
а в неработающих - не указываешь.

Автор: Светлана 28.12.2006 2:42

Цитата(мисс_граффити @ 27.12.2006 20:59) *

цитата из твоей работающей программы:

то есть ты указываешь, что надо писать в этот файл!!!
а в неработающих - не указываешь.


указываю... у меня написано:


then writeln (fout,a[j].fam);



мне просто только фамилию нужно вывести!

Автор: Светлана 28.12.2006 9:23

хм... или не правильно? mega_chok.gif

Автор: мисс_граффити 28.12.2006 15:47

я по работникам предприятия смотрела smile.gif

а если не

with a[i] do
readln(fin,fam,nam,ocenka);

а
with a[i] do
read(fin,fam,nam,ocenka);

что получится? (сорри, пишу из универа... тут паскаля нет, проверить не могу)

Автор: Светлана 28.12.2006 18:37

Цитата(мисс_граффити @ 28.12.2006 11:47) *

что получится? (сорри, пишу из универа... тут паскаля нет, проверить не могу)


ниче страшного! Пасиб! Удачи в универе!!!