Помощь - Поиск - Пользователи - Календарь
Полная версия: Задание...
Форум «Всё о Паскале» > Pascal, Object Pascal > Задачи
-zara44-
1. Создать файл с записями следующей структуры:
-шифр факультета

-курс

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

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

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


2. Распечатать файл в виде сводки таблицы.
3. Для двух, трех групп скорректировать 3-ри последних поля.
zara44
Пожалуйста помогите хоть чем-нибудь. Я никак не догоняю как делать... заранее спасибо....
Lapp
Хоть что-нибудь пытался сделать? Если да, то покажи результат, пожалуйста. Даже если совсем немного.
zara44
Пытался. Но дома этого нету. Есть тока в колледже.
Lapp
Цитата(zara44 @ 25.04.2007 22:13) *

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

О - да там так много, что ты не можешь сейчас повторить?
Попробуй все же.. Или приноси текст завтра - все исправим, будет в лучшем виде smile.gif
zara44
Окей. Завтра постараюсь принести.
zara44
Вот что я смог сделать:
 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
а поля записи где ?
zara44
А их вроде не обязательно писать, я их прописал в варе.
Tan
Как необязательно ? А как тогда ты себе представляешь обращение к полю записи ?
zara44
в варе же тип of zap. Вот и связь.
Tan
массив пустых записей, в этом есть смысл ?
volvo
Цитата
в варе же тип of zap
Угу... А zap - ПУСТОЙ... Вот и где связь?
zara44

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
что дальше не ясно ?
zara44
Неааааа. Че дальше не знаю.
Tan
Теперь вероятно тебе надо разобраться как работать с записями, для начала было бы здорово прочитать соответствующий раздел, ты неправильно пытаешься прочитать данные о колледже, для этого надо объяснить программе что ты работаешь именно с записями zap, а не другими переменными, то есть
With zap{название записи} do 
begin
{работаешь с полями}
end.

И ещё : у тебя поля состоят из массивов, которые разных размеров, а твой цикл для считывания подразумевает, что все массивы полей одинаковы по количеству элементов.
мисс_граффити
вот это - что за изврат?
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
Погляди, если я не ошибаюсь тут то, что ты пытался реализовать, то есть считывание информации с последующье записью в файл, только перменные взял свои (типы можешь изменить под свои).
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
Щас посмотрю....

Добавлено через 5 мин.
Спасибо))))))). А что мне надо чтобы задание сделать????
Tan
Цитата
3. Для двух, трех групп скорректировать 3-ри последних поля
Было бы супер если бы объяснили значение этой части задания.
zara44
А первые два???? или они уже сделаны??? Сам не могу понять свое задание, мне дали его и ничего не объяснили.((((
Tan
Ну в приведённом мной примере создаётся типизированный файл и после введения данных они в него записываются. Но, в моём случае после запуска программы файл каждый раз создаётся заново, уточни, тебе так надо, либо тебе надо, чтобы данные оставались там после завершения работы программы. 2й пункт твоего задания подразумевает вывод на экран, здесь всё элементарно. Считываешь запись с файла и выводишь на экран. Я бы сделал так : попросил бы ввести номер школы и выводил соответствующую запись. А по поводу 3го пункта, я не дождался ответа.
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.