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

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

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

 
 Ответить  Открыть новую тему 
> массив формируемый из текстового файла
сообщение
Сообщение #1


Гость






это таже задача, которую я описывал ниже, но теперь нужно считывать значения из текстового файла. Условие задачи: ввести в массив данные из файла и с помощью процедуры преобразовать массив следующим образом: заменить элементы нулями, если они попадают в заданный интервал (x,y).
Я провозился несколько часов, но что-то видимо опять не понимаю.. Программа заменяет нулями все элементы. Посмотрите пожалуйста.
Код

program massivf;
uses crt;
const n=3;
var f:text;
x,y:longint;
ch,i: char;
a,b,c,z: array [char] of longint;
procedure p (var z:longint);
begin
z:=0;
end;
begin
clrscr;
writeln('введите границы диапазона');
read (x,y);
assign(f,'mas.txt');
reset (f);
while not eof(f) do begin
read(f,ch);
if (ord(ch)>x) and (ord(ch)<y) then p(a[ch]) else a[ch]:=ord(a[ch]);
writeln(a[ch]);
end;
close(f);
end.

кстати, это программа (если она вообще должна работать wacko.gif ) не может работать с двузначными и более числами, т.к. читает посимвольно. А хотелось бы чтобы читала любые, но это вообще непосильная пока для меня задача. Хоть бы так заработала smile.gif I need help.
 К началу страницы 
+ Ответить 
сообщение
Сообщение #2


Гость






Вот так попробуй:
program massivf;
uses crt;
const n=20;

var
f: text;
x, y:longint;

i: integer;
a: array[1 .. n] of longint;

procedure p (var z:longint);
begin
z:=0;
end;

begin
clrscr;
writeln('введите границы диапазона');
readln(x, y);

assign(f,'mas.txt');
reset (f);

i := 0;
while not eof(f) do begin
inc(i);
read(f,a[i]);
if (a[i] > x) and (a[i] < y) then p(a[i]);
writeln(a[i]);
end;

close(f);
end.


тестировалось на файле:


Прикрепленные файлы
Прикрепленный файл  mas.txt ( 16 байт ) Кол-во скачиваний: 243
 К началу страницы 
+ Ответить 
сообщение
Сообщение #3


Гость






Спасибо, всё работает!
А почему я буду разбираться завтра smile.gif
Я понимаю так, что мы считываем из текстового файла сразу целочисленные значения.. я думал, что всё, что там находится является символьным типом и поэт. нужно, руководствуясь ascii, "переводить" c помощью ord в longint.
Этот момент мне не понять и требует изучения. Буду заниматься дальше.
Интересно, а если разделять значения запятыми, то без ord() не обойтись?
 К началу страницы 
+ Ответить 
сообщение
Сообщение #4


Гость






Цитата
Интересно, а если разделять значения запятыми, то без ord() не обойтись?

blum.gif Ищи по форуму, я выкладывал код, который работает независимо от того, как разделены значения в файле...

Хотя ... Я сам тебе дам ссылку...
Вот здесь: Помогите с запятыми
 К началу страницы 
+ Ответить 
сообщение
Сообщение #5


Гость






Спасибки!
Буду разбираться! smile.gif
 К началу страницы 
+ Ответить 

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

 





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