IPB
ЛогинПароль:

> Прочтите прежде чем задавать вопрос!

1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code], либо быть опубликованы на нашем PasteBin в режиме вечного хранения.
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!

 
 Ответить  Открыть новую тему 
> Задачка с массивом и файлом, Нехорошая задачка с массивом и файлом
сообщение
Сообщение #1


Гость






Есть задача:

Создать файл,содержащий массив целых чисел. Определить количество элементов массива.
Переменной L присвоить значение True ,если в массиве нечетное число элементов и значение
False в противном случае.

Нарисовал всё это так:


uses crt;

const n=13;

var f:text; i,kol:integer; s:real; l:boolean;
mas: array [1..n] of integer;
begin clrscr; randomize;
for i:=1 to n do begin
mas[i]:=random(25)-5; write(mas[i],' '); end;
for i:=1 to n do
kol:=kol+1; writeln;
writeln('chislo_elementov= ',kol);
if (kol mod 2)=0 then l:=false else l:=true;
writeln('L: ',l);
assign(f,'massiv1.txt'); rewrite(f);
for i:=1 to n do
write(f,mas[i],' '); writeln(f);
writeln(f,'chislo_elementov= ',kol);
writeln(f,'L: ',l); close(f);
readkey; end.


Т.е. число элементов задал сам,а надо чтобы при каждом запуске
число было четным или нечетным - менялось,как этого можно добиться? посоветуйте ,умные люди!!!
ибо конечное значение массива не удается задать переменной....
 К началу страницы 
+ Ответить 
сообщение
Сообщение #2


Гость






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

var
f: FILE of integer; { <--- Исправлено !!! }
...
begin
randomize;
count := random(20) + 20;
assign(f, 'array.dat'); rewrite(f);

for i := 1 to count do begin
elem := random(25) - 5; write(f, elem);
end;
close(f);

{
ну вот, файл создан, теперь открывай его и считай,
сколько элементов в нем хранится
}
...
end.


Сообщение отредактировано: volvo -
 К началу страницы 
+ Ответить 
сообщение
Сообщение #3


Гость






Надо чтото в скобке после слова array написать в задании переменной- ошибку выдаёт
 К началу страницы 
+ Ответить 
сообщение
Сообщение #4


Гость






Ты где-то в моем коде видишь слово Array (в смысле, описание типа)? Я - не вижу... Показывай, что ты намудрил...

Update:
исправлено, там должен был быть File of integer... Остальные переменные доопредели сам...

Сообщение отредактировано: volvo -
 К началу страницы 
+ Ответить 
сообщение
Сообщение #5


Гость






Получилось вот что:

uses crt;
var i,kol,count,elem:integer; l:boolean;
f: file of integer;
begin clrscr; randomize;
count:=random(20)+10;
assign(f,'massiv1.txt'); rewrite(f);
for i:=1 to count do begin
elem:=random(25)-5; write(f,elem); write(elem,' '); end; close(f);
assign(f,'massiv1.txt'); reset(f);
for i:=1 to count do
kol:=kol+1; writeln;
writeln('chislo_elementov= ',kol);
if (kol mod 2)=0 then l:=false else l:=true;
writeln('L: ',l);
readkey; end.


Работает вродебы)))
 К началу страницы 
+ Ответить 
сообщение
Сообщение #6


Профи
****

Группа: Пользователи
Сообщений: 731
Пол: Женский

Репутация: -  25  +


for i:=1 to count do
kol:=kol+1;

Тогда проще вывести writeln('chislo_elementov= ',count); smile.gif

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

окончание файла - eof(f)
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #7


Гость






Чуть не забыл,volvo - благодарю!!!)))
 К началу страницы 
+ Ответить 
сообщение
Сообщение #8


Гость






Айра, исправлю,но это всё мелочи , у меня нет задачи оптимизировать код)))
 К началу страницы 
+ Ответить 
сообщение
Сообщение #9


Профи
****

Группа: Пользователи
Сообщений: 731
Пол: Женский

Репутация: -  25  +


Здесь дело не в оптимизации.. Задача то на файлы, скорее всего в задании подразумевались запись в файл и чтение из него.. 1-е у тебя есть, а вместо второго ты схитрил))
Но вообще кто его знает.. я же не твой преподаватель и настаивать не буду))
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 





- Текстовая версия 18.04.2024 19:06
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name