Помощь - Поиск - Пользователи - Календарь
Полная версия: задача
Форум «Всё о Паскале» > Pascal, Object Pascal > Задачи
Илья S.
Кто нибудь помогите, скоро зачет . Напишите пожалуйста алгоритм решения следующих задач:

1)Вводятся 2 целых числа N1 и N2.Из текстового файла считываются все символы, на экран выводяться те
из них, чье количество лежит между N1 и N2.

Погите пожалуйста. Буду очень благодарен

Я сделал как вы посоветовали
И вот что получилось:

type ar256 = array [0..255] of word;

var
ar:ar256;
i,n1,n2:word;
fname:string;

procedure schet(var arr:ar256; fname:string);
var f:text; rc:char;
begin
assign(f,fname);
reset(f);
while not eof(f) do
begin
read(f,rc);
arr[ord(rc)]:=arr[ord(rc)]+1;
end;
end;

BEGIN
write('Type the name of file: ');
readln(fname);
write('Two numbers: ');
if n1>n2 then
begin
n1:=n1+n2;
n2:=n1-n2;
n1:=n1-n2;
end;
readln(n1,n2);
writeln('In file ',fname,' count of this symbols N: ',n1,'<N<',n2);
schet(ar,fname);
for i:=0 to 255 do
if (ar[i]>n1) and (ar[i]<n2) then write(chr(i),' ');
readln;
END.


Но есть проблема в том что программа не работает
Напишите пожалуйста Алгоритм правильный, чтобы заработала.

volvo
Что именно тебе не понравилось в работе программы? Все прекрасно показывает...
мисс_граффити
Цитата(volvo @ 18.12.2006 17:48) *

Что именно тебе не понравилось в работе программы? Все прекрасно показывает...

введи числа 7 и 1.

Илья S., во-первых, пользуйся тэгами.
во вторых, посмотри на этот фрагмент:
write('Two numbers: ');
if n1>n2 then
begin
n1:=n1+n2;
n2:=n1-n2;
n1:=n1-n2;
end;
readln(n1,n2);

ты СНАЧАЛА сравниваешь числа, а потом их вводишь.
поставь readln перед условием.
volvo
Ха... Но ведь проблема не в алгоритме... Автор просто уверен, что сам алгоритм не работает...

А уж то, что он не пользуется буферной переменной или неправильно вводит данные - это особенности реализации, я их не проверял...
мисс_граффити
как он обменивает значения - это не важно.
а вот перепутанные местами операторы - это ведь ошибка в алгоритме (неправильный порядок действий). другой вопрос, что эту ошибку туда приделал сам Илья S., а обвиняет тех, кто посоветовал, как делать основу...
Илья S.
Цитата(мисс_граффити @ 18.12.2006 19:06) *

как он обменивает значения - это не важно.
а вот перепутанные местами операторы - это ведь ошибка в алгоритме (неправильный порядок действий). другой вопрос, что эту ошибку туда приделал сам Илья S., а обвиняет тех, кто посоветовал, как делать основу...

Я не кого не обвиняю.Но если что-то не так,простите.

Спасибо вам большое. Вроде все получается, Только в самом конце гден End. он выводит ошибку№85 blink.gif
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.