Дизайн и креатив: разработка от профессионалов
http://uptimecommerce.com/forum/

Помогите, пожалуйста, с Паскалем!
http://uptimecommerce.com/forum/viewtopic.php?f=22&t=798
Страница 1 из 7

Автор:  YSA [ 12 янв 2010, 11:11 ]
Заголовок сообщения:  Помогите, пожалуйста, с Паскалем!

Мне необходимо доказать, что последовательность является знакочередующейся.
Вот, что начала писать: Program lab_5; {induktivnie funkcii}
uses crt;
var x:integer;
b:boolean;
init,out:Text;
begin
clrScr;
Assign(init,'init.txt');
Assign(out,'out.txt');
Rewrite(out);
Writeln(out,'Laboratorna9 rabota # 5: Induktivna9 funkci9');
Writeln(out,'9vl9ets9 li posledovatelnost znako4ereduusheys9?');
Reset(init);
read(init,x);
Writeln(x);
Writeln(out,x);

Ну а далее кусок с циклом у меня не выходит. Не совсем понимаю, как сделать. Помогите, пожалуйста.

Автор:  Kirilll [ 12 янв 2010, 11:20 ]
Заголовок сообщения:  Re: Помогите, пожалуйста, с Паскалем!

я правильно понял... надо прочитать файл init.txt... если последовательность 2, -3, 8, -10, 12, -16 то в файл out.txt вывести ету последовательность?

Автор:  YSA [ 12 янв 2010, 11:26 ]
Заголовок сообщения:  Re: Помогите, пожалуйста, с Паскалем!

Да, именно так!
Ну и внизу файла подписать, что она знакочередующаяся.
А если в исходном файле знаки последовательности не меняются, то в текстовом файле вывести эту последовательность, и подписать, что она не знакочередующаяся.

Автор:  Kirilll [ 12 янв 2010, 11:30 ]
Заголовок сообщения:  Re: Помогите, пожалуйста, с Паскалем!

щя)

Автор:  Kirilll [ 12 янв 2010, 12:14 ]
Заголовок сообщения:  Re: Помогите, пожалуйста, с Паскалем!

uses crt;
var x:integer;positive:boolean;result:string;init,out:Text;
begin
clrScr;
Assign(init,'init.txt');
Assign(out,'out.txt');
Rewrite(out);
Writeln(out,'Laboratorna9 rabota #5: Induktivna9 funkci9');
Writeln(out,'9vl9ets9 li posledovatelnost znako4ereduusheys9?');
Reset(init);
repeat
readln(init,x);
write(out,x,';');
write(x,';');
if (x>=0) then begin
if positive=true then begin
result:='ne znako4ereduushayas9';
positive:=true;
end
else
if result<>'ne znako4ereduushayas9' then begin
result:='znako4ereduushayas9';
positive:=true;
end;
end
else begin
if positive=true then begin
if result<>'ne znako4ereduushayas9' then begin
result:='znako4ereduushayas9';
positive:=false;
end;
end
else
result:='ne znako4ereduushayas9';
positive:=false;
end;
until eof(init);
writeln(out,'');
writeln(out,result);
close(init);
close(out);
writeln;
writeln(result);
readln;
end.

Автор:  Kirilll [ 12 янв 2010, 12:14 ]
Заголовок сообщения:  Re: Помогите, пожалуйста, с Паскалем!

в файле init.txt последовательность должна быть задана в стовпчик

Автор:  YSA [ 12 янв 2010, 12:16 ]
Заголовок сообщения:  Re: Помогите, пожалуйста, с Паскалем!

Таааак, вижу :)
Сейчас разберусь :)

Автор:  YSA [ 12 янв 2010, 12:26 ]
Заголовок сообщения:  Re: Помогите, пожалуйста, с Паскалем!

Ммм...всё работает, спасибо тебе большое :)
Но не мог ты пояснить мне принцип работы программы, что она делает и как, чтоб попонятнее было :)

Автор:  Kirilll [ 12 янв 2010, 12:34 ]
Заголовок сообщения:  Re: Помогите, пожалуйста, с Паскалем!

все елементарно просто

сначала проверяем прочитаное число. если оно >= 0 значит оно додатное)
дальше проверяем значения positive.. если positive=true значит предыдущее значения тоже было додатное а значит ето уже не знакочередуемость и поетому присваиваем result:='ne znako4ereduushayas9'; и так как ето число то пишем positive:=true;

иначе.. т.е. когда positive не равно true значит предыдущее значения было отрицательным тогда проверяем
if result<>'ne znako4ereduushayas9' тоесть не было ли раньше записано что последовательность незнакочередуема...
если не было такого result:='znako4ereduushayas9'; и присваиваем positive=true; в честь того что число

Автор:  Kirilll [ 12 янв 2010, 12:38 ]
Заголовок сообщения:  Re: Помогите, пожалуйста, с Паскалем!

дальше
иначе если число < 0
снова проверяем было ли предыдущее значения
и не была ли последовательность обявлена result:='ne znako4ereduushayas9';
если нет значит
result:='znako4ereduushayas9';
positive:=false; тоесть число не додатное
иначе т.е. если предыдущее значения было отрицательным т.е. было positive:=false; то снова присваиваем что незнакочередующаяся...)
ну и затем выводи результат в файл и в консоль..
ну вот))
если что нить непонятно.. спрашывай)

Страница 1 из 7 Часовой пояс: UTC
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
http://www.phpbb.com/