Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Программирование и базы данных (http://forum.oszone.net/forumdisplay.php?f=21)
-   -   Паскаль! создать массив целых чисел и записать его в файл (http://forum.oszone.net/showthread.php?t=176932)

Desvi 30-05-2010 19:03 1424122

Паскаль! создать массив целых чисел и записать его в файл
 
Помогите пожалуйста, Составить программу, которая создает массив целых чисел и записывает его в файл разными способами (с использованием процедур write или blockwrite, read или blockread), а также вычисляет значение среднего арифметического всех элементов, записанных в файл.

Я набросал массив, если есть ошибки исправте пожалуйста

Код:

uses crt;
var a: file of integer; i: byte;
    mas:array[1..100] of integer; n:integer;
begin
assign(a,'file.bin');
reset(a); 
clrscr;
writeln ('Vvedite kol-vo elementov ');
readln (n);
writeln('vvedite zna4enie massiva: ');
for i:=1 to n do
write('a[',i,'] = ');
readln(a[i]);
end;
begin
read(a,mas[i]);
write(mas[i],'  ');
end;
close(a);
end.


lxa85 30-05-2010 20:05 1424152

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

uses crt;
var
a: file of integer;
i: byte;
mas:array[1..100] of integer;
n:integer;
begin
assign(a,'file.bin');
reset(a); // что делает reset?
clrscr;
writeln ('Vvedite kol-vo elementov ');
readln (n);
writeln('vvedite zna4enie massiva: ');

for i:=1 to n do
write('a[',i,'] = '); // при данном расположении операторных скобок (begin, end) write - единственный оператор, который будет выполнятся в цикле for
readln(a[i]); //что и откуда читаем? Вопрос кстати не праздный
end; // к чему относится этот end?

begin //этот begin тоже не понятен. Что хоть тут происходит, или что должно происходить?
read(a,mas[i]);
write(mas[i],' ');
end;

close(a);
end.

Desvi 31-05-2010 21:17 1424923

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


Код:

USES CRT;
var f:text;
    n,i:integer;
    nf:string;
    a: array[1..10] of integer;
begin
clrscr;
randomize;
write('Imya faila ');
readln(nf);
nf:=nf+'.txt';
assign(f,nf);
rewrite(f);
write('Skolko 4isel v massive n=');
readln(n);
for i:=1 to n do
 begin
randomize;
for i:=1 to n do
begin
a[i]:=random(n);
write(a[i],'    ');
end;
end;
close(f);
end.


lxa85 31-05-2010 22:54 1424981

Desvi, КОММЕНТАРИИ!!! Скоро на лбу у каждого студента писать буду!
(Без обид, но это уже надоедает. Благо программа маленькая разобраться можно, но привыкать не стоит.)

По коду:
Randomize надо вызвать один раз в начале программы. Это правильное его использование. (Что вообще делает randomize - читай в документации, гугле)

Покажи мне команду записи в файл. Где она?
Зачем тебе двойной вложенный цикл for i = 1 to n, причем не правильно написанный?


Время: 07:47.

Время: 07:47.
© OSzone.net 2001-