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

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

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

 
 Ответить  Открыть новую тему 
> Задачка с массивом и файлом, Нехорошая задачка с массивом и файлом
WiT
сообщение 14.05.2008 19:20
Сообщение #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.


Т.е. число элементов задал сам,а надо чтобы при каждом запуске
число было четным или нечетным - менялось,как этого можно добиться? посоветуйте ,умные люди!!!
ибо конечное значение массива не удается задать переменной....
 К началу страницы 
+ Ответить 
volvo
сообщение 14.05.2008 19:43
Сообщение #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 - 14.05.2008 20:36
 К началу страницы 
+ Ответить 
Гость
сообщение 14.05.2008 20:14
Сообщение #3


Гость






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


Гость






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

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

Сообщение отредактировано: volvo - 14.05.2008 20:37
 К началу страницы 
+ Ответить 
Гость
сообщение 14.05.2008 20:44
Сообщение #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.


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


Профи
****

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

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


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

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

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

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


Гость






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


Гость






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


Профи
****

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

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


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

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

 



- Текстовая версия 20.07.2025 6:39
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"