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

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

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

Автор: -zara44- 26.04.2007 0:59

1. Создать файл с записями следующей структуры:

-шифр факультета

-курс

-номер группы

-кол-во не явившихся по уважительной причине
-кол-во не явившихся по не уважительной причине

-кол-во очисленных


2. Распечатать файл в виде сводки таблицы.
3. Для двух, трех групп скорректировать 3-ри последних поля.

Автор: zara44 26.04.2007 1:01

Пожалуйста помогите хоть чем-нибудь. Я никак не догоняю как делать... заранее спасибо....

Автор: Lapp 26.04.2007 1:08

Хоть что-нибудь пытался сделать? Если да, то покажи результат, пожалуйста. Даже если совсем немного.

Автор: zara44 26.04.2007 1:13

Пытался. Но дома этого нету. Есть тока в колледже.

Автор: Lapp 26.04.2007 1:17

Цитата(zara44 @ 25.04.2007 22:13) *

дома этого нету. Есть тока в колледже.

О - да там так много, что ты не можешь сейчас повторить?
Попробуй все же.. Или приноси текст завтра - все исправим, будет в лучшем виде smile.gif

Автор: zara44 26.04.2007 1:27

Окей. Завтра постараюсь принести.

Автор: zara44 30.04.2007 19:19

Вот что я смог сделать:

 program zap;
uses crt;
type
zap=record
end;
var
kolledg:array[1..100] of zap;
kurs:array[1..10] of byte;
gruppa:array[1..10] of string[10];
kolne:array[1..100] of word;
koly:array[1..100] of word;
otcisl:array[1.100] of byte;
shifr:string[8];
i,n:integer;
f:file;
begin
clrscr;
read(n);
assign(f,shifr);
reset(f);
for i:=1 to n do
begin
write('shifr fakulteta');
readln(shifr[i]);
write('kurs');
readln(kurs[i]);
write('kol-vo po ne uvagitelnoy');
readln(kolne[i]);
write('kol-vo po uvagitelnoy');
readln(koly[i]);
write('kol-vo otchislenih');
readln(otcisl[i]);
rewrite(f);
close(f);
end;
readkey;
end.


Извините что так долго. Помогите что надо делать дальше????

Автор: Tan 30.04.2007 19:23

а поля записи где ?

Автор: zara44 30.04.2007 19:25

А их вроде не обязательно писать, я их прописал в варе.

Автор: Tan 30.04.2007 19:26

Как необязательно ? А как тогда ты себе представляешь обращение к полю записи ?

Автор: zara44 30.04.2007 19:27

в варе же тип of zap. Вот и связь.

Автор: Tan 30.04.2007 19:28

массив пустых записей, в этом есть смысл ?

Автор: volvo 30.04.2007 19:29

Цитата
в варе же тип of zap
Угу... А zap - ПУСТОЙ... Вот и где связь?

Автор: zara44 30.04.2007 19:31


program zap;
uses crt;
type
zap=record
kurs:array[1..10] of byte;
gruppa:array[1..10] of string[10];
kolne:array[1..100] of word;
koly:array[1..100] of word;
otcisl:array[1.100] of byte;
shifr:string[8];
end;
var
kolledg:array[1..100] of zap;
i,n:integer;
f:file;
begin
clrscr;
read(n);
assign(f,shifr);
reset(f);
for i:=1 to n do
begin
write('shifr fakulteta');
readln(shifr[i]);
write('kurs');
readln(kurs[i]);
write('kol-vo po ne uvagitelnoy');
readln(kolne[i]);
write('kol-vo po uvagitelnoy');
readln(koly[i]);
write('kol-vo otchislenih');
readln(otcisl[i]);
rewrite(f);
close(f);
end;
readkey;
end.

Автор: Tan 30.04.2007 19:34

что дальше не ясно ?

Автор: zara44 30.04.2007 19:35

Неааааа. Че дальше не знаю.

Автор: Tan 30.04.2007 19:45

Теперь вероятно тебе надо разобраться как работать с записями, для начала было бы здорово прочитать соответствующий раздел, ты неправильно пытаешься прочитать данные о колледже, для этого надо объяснить программе что ты работаешь именно с записями zap, а не другими переменными, то есть

With zap{название записи} do 
begin
{работаешь с полями}
end.

И ещё : у тебя поля состоят из массивов, которые разных размеров, а твой цикл для считывания подразумевает, что все массивы полей одинаковы по количеству элементов.

Автор: мисс_граффити 30.04.2007 19:47

вот это - что за изврат?

zap=record
kurs:array[1..10] of byte;
gruppa:array[1..10] of string[10];
kolne:array[1..100] of word;
koly:array[1..100] of word;
otcisl:array[1.100] of byte;
shifr:string[8];
end;

зачем в каждой записи такие огроменные массивы?!

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

Автор: Tan 30.04.2007 20:24

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

Uses crt;
Const N = 10;
filename = 'Data.txt';
type school = Record
FacultyCode : integer;
Course : integer;
Number : integer;
GoodGuys : integer;
BadGuys : integer;
VeryBadGuys : integer;
end;
var
f : file of school;
ms : array [1..N] of school;
K : byte;
i : integer;
begin
Clrscr;
assign (f,filename);
Rewrite (f);
Writeln ('How much records you will create ? ');
readln (K);
for i:= 1 to K do
With ms[i] do
begin
Clrscr;
Writeln ('Input faculty code of ',i, ' record');
Readln (ms[i].FacultyCode);
Writeln ('Input course of ',i, ' record');
Readln (ms[i].Course);
Writeln ('Input number of ',i, ' record');
Readln (ms[i].Number);
Writeln ('Input amount of GoodGuys of ',i, ' record');
Readln (ms[i].GoodGuys);
Writeln ('Input amount of BadGuys of ',i, ' record');
Readln (ms[i].BadGuys);
Writeln ('Input amount of VeryBadGuys in ',i, ' record');
Readln (ms[i].VeryBadGuys);
write (f,ms[i]);
Writeln ('Data has been written. Press any key...');
readkey;
end;
Close (f);
end.

Автор: zara44 1.05.2007 2:00

Щас посмотрю....

Добавлено через 5 мин.
Спасибо))))))). А что мне надо чтобы задание сделать????

Автор: Tan 1.05.2007 3:36

Цитата
3. Для двух, трех групп скорректировать 3-ри последних поля
Было бы супер если бы объяснили значение этой части задания.

Автор: zara44 1.05.2007 4:32

А первые два???? или они уже сделаны??? Сам не могу понять свое задание, мне дали его и ничего не объяснили.((((

Автор: Tan 1.05.2007 14:18

Ну в приведённом мной примере создаётся типизированный файл и после введения данных они в него записываются. Но, в моём случае после запуска программы файл каждый раз создаётся заново, уточни, тебе так надо, либо тебе надо, чтобы данные оставались там после завершения работы программы. 2й пункт твоего задания подразумевает вывод на экран, здесь всё элементарно. Считываешь запись с файла и выводишь на экран. Я бы сделал так : попросил бы ввести номер школы и выводил соответствующую запись. А по поводу 3го пункта, я не дождался ответа.