Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 30.11.2010, 00:43   #1
Orleana-vi
 
Регистрация: 30.11.2010
Сообщений: 8
По умолчанию объяснити уже написанную программу

Дано натуральное число n. Вывести на экран все натуральные числа, меньше n и взаимно простые с ним.

вот фото программы написанной,она работаю абсолютно правильно
но вы можете ее объяснить,построчно


http://xmages.net/show.php/2103957_imag0040-jpg.html

Последний раз редактировалось Orleana-vi; 30.11.2010 в 00:58.
Orleana-vi вне форума Ответить с цитированием
Старый 30.11.2010, 00:52   #2
Claster
Форумчанин
 
Аватар для Claster
 
Регистрация: 02.09.2008
Сообщений: 340
По умолчанию

где фото? )))
Цитата:
- Только сисадмин может попросить у начальства 20$ на память...
Claster вне форума Ответить с цитированием
Старый 30.11.2010, 00:58   #3
Orleana-vi
 
Регистрация: 30.11.2010
Сообщений: 8
По умолчанию

http://xmages.net/show.php/2103957_imag0040-jpg.html

ой вот))
не обращайте внимания на ошибку сверху,это после проверки.все работает
Orleana-vi вне форума Ответить с цитированием
Старый 30.11.2010, 01:03   #4
unbanned
Форумчанин
 
Аватар для unbanned
 
Регистрация: 23.11.2010
Сообщений: 530
По умолчанию

Код:
begin
writeln('a=');
readln(a); // ввод значения переменной а
for b:=2 to a-1 do // открывается цикл от 2х до а минус 1(для всех b от двух до а-1 выполнить) 
begin
d:=0;
for c:=2 to a div 2 do // для всех с от 2х до а нацело делить на 2 выполнить
if (a mod c=0) and (b mod c=0) then d:=1; // если остаток от деления а на с равен нулю (делиться без остатка), 
//и остаток от деления b на с равен нулю, то переменной d присвоить значение единицы
if d=0 then write(b,' '); // если d равно нулю, то вывести значение переменной b
end; // конец внутреннего цикла
writeln('взаимно простые числа');
end; // внешнего цикла

Последний раз редактировалось Stilet; 30.11.2010 в 09:04.
unbanned вне форума Ответить с цитированием
Старый 30.11.2010, 01:07   #5
Orleana-vi
 
Регистрация: 30.11.2010
Сообщений: 8
По умолчанию

я просто ее в интернете нашла,но я не знаю что вообще значат все эти буквы
и мне надо ее защитить)

задание написано)
мне нужно прям построчно
что все делает

Последний раз редактировалось Stilet; 30.11.2010 в 09:04.
Orleana-vi вне форума Ответить с цитированием
Старый 30.11.2010, 01:20   #6
MBelka
 
Регистрация: 21.10.2010
Сообщений: 7
По умолчанию

Код:
begin {начало программы}
write ('a='); {вывод на экран строки "а="}
readln (a); {записи в переменную а числа, введенного с клавиатуры пользователем}
for b:=2 to a-1 do {задается условие цикла: б присваивается значение 2 и пока б изменяется до значения а-1выплнить:}
begin {начало цикла}
  d:=0; {присвоение переменной д значения 0}
  for c:=2 to a do {условие цикла: с присваивается значение 2 и пока с не станет равно а выполнить:}
    if (a mod c = 0) and (b mod c = 0) then d:=1;{если остача от деления а/с равно 0 и остача от деления б/с равно 0, то д присвоить значение 1}
    if d=0 then write (b, ' '); {если д равно нулю, вывести значение б и пробел}
end;{конец цикла}
writeln ('vzaimno prostie chesla');{вывод на экран строки "взаимно простые числа"}
end.{конец программы}
так вроде бы понятно?

Последний раз редактировалось MBelka; 30.11.2010 в 01:23.
MBelka вне форума Ответить с цитированием
Старый 30.11.2010, 01:38   #7
Orleana-vi
 
Регистрация: 30.11.2010
Сообщений: 8
По умолчанию

for c:=2 to a div 2 do // для всех с от 2х до а нацело делить на 2 выполнить


препод задал такой вопрос "почему до а делить на два"
и вообще что мы задаем под каждой буквой
Orleana-vi вне форума Ответить с цитированием
Старый 30.11.2010, 01:46   #8
Hacker19_90
Delphi Warrior
Старожил
 
Аватар для Hacker19_90
 
Регистрация: 15.08.2008
Сообщений: 2,502
По умолчанию

Ну ту можно поставить несколько скобок для ясности
for c := 2 to (a div 2) do
Т.е. в чём смысл?
Смысл вот в чём, цикл начинается с 2 так как все чила делятся на 1, потом почему до a делённого пополам, потому что ни одно число не делится без остатка на число которое превышает половину первого числа!
Таки образом откидываем кучу лишних шагов! Оптимизиция!
Mess with the best, die like the rest. (с) Hackers
Лабораторные, курсовые на Delphi\Pascal\C++
ya.flex-freelance@yandex.ru Icq - 636-954-303
Hacker19_90 вне форума Ответить с цитированием
Старый 30.11.2010, 01:57   #9
Orleana-vi
 
Регистрация: 30.11.2010
Сообщений: 8
По умолчанию

там в задание взаимно простые числа и в итоге он и выдает взаимно простые числа

типа вводим 6

он выдает 4 5

это точно правильно объяснение?
Orleana-vi вне форума Ответить с цитированием
Старый 30.11.2010, 02:01   #10
Hacker19_90
Delphi Warrior
Старожил
 
Аватар для Hacker19_90
 
Регистрация: 15.08.2008
Сообщений: 2,502
По умолчанию

Правильное!
Mess with the best, die like the rest. (с) Hackers
Лабораторные, курсовые на Delphi\Pascal\C++
ya.flex-freelance@yandex.ru Icq - 636-954-303
Hacker19_90 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Исправить уже написанную программу Shiza321 Помощь студентам 1 27.01.2010 12:49
Delphi(подправить написанную программу) Квио Общие вопросы Delphi 1 23.09.2009 08:02
Как протестировать написанную программу? Сергей089 Общие вопросы Delphi 6 05.12.2008 18:01