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

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

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

> Процедуры в массивах, Помогите разобраться
сообщение
Сообщение #1





Группа: Пользователи
Сообщений: 7
Пол: Мужской
Реальное имя: Алексей

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


Задача уже обсуждалась в форуме (мне очень сильно помогли).
Часть написанной программы работала. Сейчас не могу составить работающую процедуру для записи в файл(совсем запутался ). Посмотрите, пожалуйста имеющийся код. Мне кажется, что все очень громоздко и коряво.
Условие задачи:
Написать программу для ввода, преобразования и вывода 3-х целочисленных массивов. Вариант преобразования: все элементы массива, величина которых попадает в заданный диапазон (а,b), заменить нулями. Алгоритм преобразования массива оформить в виде процедуры.
a) программа с вводом данных с клавиатуры
б) программа с вводом данных и записью результата в текстовый файл.

program Massivy;
uses crt;
const count1=2;
count2=3;
count3=4;

var a,b,t:integer;f,g:text;
m:array [1..count1] of integer;
n:array [1..count2] of integer;
p:array [1..count3] of integer;

Procedure Input(var arr:array of integer;size:integer);
var i:integer;
begin
for i:=0 to size -1 do begin
write('element' #',i+1,': ');readln(arr[i]);
end;
end;

Procedure Check(var arr:array of integer;size:integer;a,b:integer);
var i:integer;
begin
writeln('Vvedite posledovatelno granitsy diapazona dlia poiska');
write('a= ':10);readln(a);
write('b= ':10);readln(b);
for i:=0 to size -1 do if (arr[i]>=a) and (arr[i]<=b) then begin arr[i]:=0;
end;
end;

Procedure Print(var arr:array of integer;size:integer);
var i:integer;
begin
for i:=0 to size -1 do begin
writeln(arr[i]:10);
end;
end;
Function Get_num(var f: text): integer;
var
X: integer;
ch: char;
begin
get_num := -1;
if not seekeof(f) then begin
ch := #0; X := 0;
while not (ch in ['0'..'9']) do read(f, ch);
while (ch in ['0'..'9']) do begin
X := X * 10 + (Ord(ch) - Ord('0'));
read(f, ch);
end;
get_num := X;
end;
end;
Procedure Rfile(var arr:array of integer;size:integer);
var i:integer;
begin
Assign(f, 'c:\file.txt');
Reset(f);
while not EoF(f) do begin
Read(f);
begin
for i:=0 to size -1 do begin
arr[i]:=Get_num(f);
end;
end;
end;
end;
Procedure Wfile(var arr:array of integer);
begin
{var i:=integer;}
Assign(g,'c:\file1.txt');
Rewrite(g);
{Write(g,arr[i]);}
end;
begin
writeln('Vyberite variant vvoda i vyvoda dannykh: 1-file,2-keyboard');
readln(t);
if t=1 then begin
{Rfile(m);
Rfile(n);
Rfile(p);}
Check (m,count1,a,b);
Check (n,count2,a,b);
Check (p,count3,a,b);
Wfile(m);
Wfile(n);
Wfile(n);
else if t=2 then
begin
Input (m,count1);
Input (n,count2);
Input (p,count3);
Check (m,count1,a,b);
Check (n,count2,a,b);
Check (p,count3,a,b);
Print (m,count1);
Print (n,count2);
Print (p,count3);
close(f);close(g);
readln
end;
end.

.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

Сообщений в этой теме


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

 





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