|
Главная | Правила | Регистрация | Дневники | Справка | Пользователи | Календарь | Поиск | Сообщения за день | Все разделы прочитаны |
|
Опции темы | Опции просмотра |
25.09.2012, 09:17 | #1 (permalink) |
Новичок
Регистрация: 25.09.2012
Сообщений: 10
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
|
Помогите написать программу
|
25.09.2012, 09:17 | |
Helpmaster
Member
Регистрация: 08.03.2016
Сообщений: 0
|
На форуме много схожих тем, можете полистать Помогите написать программу Помогите написать программу |
25.09.2012, 09:48 | #2 (permalink) | |
Специалист
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
|
Цитата:
|
|
26.09.2012, 14:53 | #4 (permalink) |
Специалист
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
|
Ну, тогда-то что...
Код:
VAR i,A,S:Integer; q:Boolean; Function Test(J:Integer):Boolean; Var m:Integer; b:Boolean; begin m:=(J div 2)+1; b:=true; Repeat Dec(m); If (J mod m)=0 then b:=false; Until (b=false) or (m=2); Test:=b; end; Begin i:=0; S:=0; Writeln('Numbers:'); Repeat q:=false; Inc(i); Write('Next number '); If (i<4) or ((i>=4) and (Test(i))) then q:=true; If q then write('(prime position ',i,') '); Readln(A); If (A>0) and q then Inc(S,A); Until A=0; Writeln; Writeln('Sum= ',S); Readln End. |
26.09.2012, 16:58 | #5 (permalink) |
Новичок
Регистрация: 25.09.2012
Сообщений: 10
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
|
Спасибо большое
|
Ads | |
Member
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070
|
02.10.2012, 08:45 | #7 (permalink) |
Новичок
Регистрация: 25.09.2012
Сообщений: 10
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
|
Помогите разобрать програму на паскале
Здраствуйте, погите пожалуйста разобрать програму "Дана непустая последовательность натуральных чисел за которой следует 0. Вычеслить сумму тех, из их порядковый номер которых простое число."
VAR i,A,S:Integer; q:Boolean; Function Test(J:Integer):Boolean; Var m:Integer; b:Boolean; begin m:=(J div 2)+1; b:=true; Repeat Dec(m); If (J mod m)=0 then b:=false; Until (b=false) or (m=2); Test:=b; end; Begin i:=0; S:=0; Writeln('Numbers:'); Repeat q:=false; Inc(i); Write('Next number '); If (i<4) or ((i>=4) and (Test(i))) then q:=true; If q then write('(prime position ',i,') '); Readln(A); If (A>0) and q then Inc(S,A); Until A=0; Writeln; Writeln('Sum= ',S); Readln End. |
02.10.2012, 10:37 | #8 (permalink) |
Специалист
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
|
Открыл старую тему и переместил вопрос туда. (Тема была закрыта, чтобы отвадить любителей подбрасывать свои задачки в чужие темы). Объясняю.
Булева функция Test(J) возвращает true, если аргумент (J) - простое число, и false в противном случае. Проверка проводится "в лоб": вычисляются остатки от деления J на все числа, начиная с J/2 и до 2, и если хоть один остаток оказывается нулевым, то проверка прерывается и функция получает значение false. Дальше - всё просто: искомой сумме и стартовому номеру вводимого числа присваиваются начальные значения S=0 и i=0, дальше организуется цикл ввода Repeat..Until, прерывающийся при введении А=0, в котором проверяется, является ли номер вводимого числа простым. Если является, то булевой переменной-флажку q присваивается значение true, в противном случае - false. Простым считается номер либо меньший 4 (т.е. 1, 2 и 3), либо, если он больше 3, то прошедший тестирование с помощью функции Test(i). Если q=true, то выдается сообщение "prime position", т.е. номер очередного вводимого А - простое число, и это А прибавляется к сумме (на всякий случай там еще "отсекаются" отрицательные числа). Далее осталось только выдать полученную сумму на экран и остановить выполнение программы до нажатия клавиши "Enter", что делается оператором Readln. Вроде как и всё. |
22.10.2012, 16:47 | #10 (permalink) |
Новичок
Регистрация: 25.09.2012
Сообщений: 10
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
|
Доброго времени суток.
Препод забраковал прогу, требует без использования функции, как быть? |
Ads | |
Member
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070
|
Опции темы | |
Опции просмотра | |
|
|