TURBO PASCAL

Новости       

Программы

Turbo Pascal

Игры

Документация

"Странности"

FAQ

Ссылки

Благодарности 

Гостевая книга

Спонсор

От автора

Программа решения уравнения  A*X + B*Y = C в целых числах

на отрезке [P,O]  методом перебора.

Program pr41(Input, Output);          

Объявление имени программы

Label 1, 2, 3;        

Блок объявления меток: задаем метки 1, 2 и 3

Var         

Блок объявления глобальных переменных

A, B, C   : Integer;              

Переменные A, B, C - коэффициенты уравнения

X, Y        : Integer;              

Переменные X, Y - неизвестные аргументы уравнения

P, O        : Real;    

Переменные P, O - границы интервала

k              : Integer;              

Переменная k - вспомогательная переменная, накапливающая число решений

 

 

Begin    

Начало тела программы

 

 

WriteLn ('PASCAL: Решение уравнения A*X+B*Y=C в целых числах на [P,O].');  

Формулировка цели алгоритма

WriteLn ('Введите коэффициенты:');           

Запрос ввода коэффициентов

Write('A = '); ReadLn(A); 

Вывод запроса и ввод коэффициента A

Write('B = '); ReadLn(B);  

Вывод запроса и ввод коэффициента B

Write('C = '); ReadLn(C);  

Вывод запроса и ввод коэффициента C

WriteLn ('Введите концы отрезка:');             

Запрос ввода концов отрезка

Write('P = '); ReadLn(P);   

Вывод запроса и ввод P - левого конца отрезка

Write('O = '); ReadLn(O);  

Вывод запроса и ввод O - правого конца отрезка

 

 

If Round (P) = P Then Goto 1;         

Если целая часть P равна самому P, то переход на метку 1

If P < 0 Then P := P + 1;     

Если P отрицательное, то увеличиваем P на единицу

 

 

1: If Round (O) = O Then Goto 2;    

Метка 1: Если целая часть O равна самому O, то переход на метку 2

If O < 0 Then O := O + 1;   

Если O отрицательное, то увеличиваем O на единицу

 

 

2: k := 1;

Метка 2: Присваиваем k единицу

For X := Round (P) To Round (O) Do            

Цикл для X от округленного значения P до округленного значения O

For Y := Round (P) To Round (O) Do            

Цикл для Y от округленного значения P до округленного значения O

Begin    

Начало тела цикла

If A * X + B * Y <> C Then Goto 3;

Если значения X и Y удовлетворяют уравнению, то выполнять...

WriteLn ('Решение номер ', k, ': X = ', X, '  Y = ', Y);   

Выводим значения X и Y - очередное решение уравнения

k := k + 1;             

Увеличиваем k на единицу

3:            

Метка 3

End;      

Конец тела цикла

 

 

If k = 1 Then        

Если k = 1, т.е. не изменилось, то...

WriteLn ('Нет целых корней.');       

Вывести сообщение об отсутствии целых корней

 

 

ReadLn;

Ожидание нажатия клавиши Enter для завершения

End.       

Конец программы.

 

На первую страницу

Rambler's Top100 PROext: Top 1000
Rambler's Top100

(с) Все права защищены.

По всем интересующим вопросам прошу писать электронный адрес

Hosted by uCoz