Отправляет email-рассылки с помощью сервиса Sendsay
  Все выпуски  

RusFAQ.ru: Программирование на языке Pascal


РАССЫЛКИ ПОРТАЛА RUSFAQ.RU

/ КОМПЬЮТЕРЫ И ПО / Языки программирования / Pascal

Выпуск № 370
от 14.05.2007, 21:05

Администратор:Калашников О.А.
В рассылке:Подписчиков: 251, Экспертов: 69
В номере:Вопросов: 1, Ответов: 2


Вопрос № 86063: уважаемые эксперты, в прошлый раз вы помогли решить задачу о нахождении всех пар взаимопростых чисел не превосходящих n, (взаимо простые числа это те числа, которые не имеют обших делителей кроме 1 ). эта программа, идеально работает, выводит пар...

Вопрос № 86.063
уважаемые эксперты, в прошлый раз вы помогли решить задачу о нахождении всех пар взаимопростых чисел не превосходящих n, (взаимо простые числа это те числа, которые не имеют обших делителей кроме 1 ).
эта программа, идеально работает, выводит пары взаимопростых чисел, и считает их количество, но теперь препод требует изменить немного прогу , чтобы программа сначала вывела количество пар взаимопростых чисел, а потом, по желанию "клиента" расечатала количество пар.
как понимаю,сначало нужно посчитать сколько пар, вывести их на экран, а потом с помощью оператора if...then сделатьтак, что при нажатии "1" выводила пары, при нажатии "0" не выводила пары на экран.
привожу исходнуу прогу которая выводит сначала пары, а потом их количество,
program q85161;
function nod(x,y:integer):integer; {функция нахождения НОД}
var r:integer;
begin
repeat
r:=x mod y;
x:=y; y:=r;
until y=0;
nod:=x;
end;
{ОСНОВНАЯ ПРОГРАММА}
var n,i,j,kol:integer;
begin
read(n); kol:=0;
for i:=1 to n do
for j:=1 to n do
if (nod(i,j)=1) and (i<=j) then
begin writeln(i,':',j); inc(kol); end; {вывод на экран очередной пары}
writeln('count=',kol);{выводим общее количество пар}
readln;
end.
очень прошу помогите!!!!!!!
Отправлен: 08.05.2007, 21:04
Вопрос задал: Fenechkaa (статус: Посетитель)
Всего ответов: 2
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: Gh0stik
Здравствуйте, Fenechkaa!

Поскольку предыдущее решения было предложено мной, то и в этот раз решил опять Вам помочь, смотрите код:

program q86063;
function nod(x,y:integer):integer;
var r:integer;
begin
repeat
r:=x mod y;
x:=y; y:=r;
until y=0;
nod:=x;
end;

var n,i,j,kol:integer;
c:char;
begin
readln(n); kol:=0;
for i:=1 to n do
for j:=1 to n do
if (nod(i,j)=1) and (i<=j) then inc(kol); {на данном этапе мы просто считаем количество}
writeln('count=',kol);
write('write? (y/n) '); read(c); {просим ввести символ "y" если необходимо выводить на экран}
if c='y' then
for i:=1 to n do
for j:=1 to n do
if (nod(i,j)=1) and (i<=j) then writeln(i,':',j);
write('End program!!!');
readln;
end.


Good Luck!!!
---------
Господь Бог - это всего лишь сверхмощный генератор случайных чисел, в соответствии с которыми сочетаются события на Земле. Генератор случайных чисел - и только.
Ответ отправил: Gh0stik (статус: Профессионал)
Украина, Славянск
Организация: Славянский государственный педагогический университет (Кафедра алгебры)
ICQ: 289363162
----
Ответ отправлен: 08.05.2007, 21:42
Оценка за ответ: 5

Отвечает: Вологин Всеволод Вячеславович
Здравствуйте, Fenechkaa!
{ОСНОВНАЯ ПРОГРАММА}
var n,i,j,kol:integer;
begin
read(n); kol:=0;
for i:=1 to n do
for j:=1 to n do
if (nod(i,j)=1) and (i<=j)
then
inc(kol);
writeln('count=',kol);
Writeln('Вывести пары? Если 1 - то вывести');
Write(' другая клавиша - не выводить');
readln(kol);
If kol = 1 {Чтобы не описывать новые переменные исполь-ся kol}
Then
for i:=1 to n do
for j:=1 to n do
if (nod(i,j)=1) and (i<=j) then
writeln(i,':',j)
Readln;
End.

{но ксожалению текст проги намного увеличивается :(((}
---------
Студент
Ответ отправил: Вологин Всеволод Вячеславович (статус: 1-ый класс)
Ответ отправлен: 11.05.2007, 11:23


Отправить вопрос экспертам этой рассылки

Приложение (если необходимо):

* Код программы, выдержки из закона и т.п. дополнение к вопросу.
Эта информация будет отображена в аналогичном окне как есть.

Обратите внимание!
Вопрос будет отправлен всем экспертам данной рассылки!

Для того, чтобы отправить вопрос выбранным экспертам этой рассылки или
экспертам другой рассылки портала RusFAQ.ru, зайдите непосредственно на RusFAQ.ru.


Форма НЕ работает в почтовых программах The BAT! и MS Outlook (кроме версии 2003+)!
Чтобы отправить вопрос, откройте это письмо в браузере или зайдите на сайт RusFAQ.ru.


© 2001-2007, Портал RusFAQ.ru, Россия, Москва.
Авторское право: ООО "Мастер-Эксперт Про"
Email: support@rusfaq.ru, тел.: +7 (926) 535-23-31
Хостинг: "Московский хостер"
Поддержка: "Московский дизайнер"
Авторские права | Реклама на портале
Версия системы: 4.52 от 02.05.2007
Яндекс Rambler's Top100

В избранное