|
|||||||
АвтоАвтоматизацияАрхитектураАстрономияАудитБиологияБухгалтерияВоенное делоГенетикаГеографияГеологияГосударствоДомДругоеЖурналистика и СМИИзобретательствоИностранные языкиИнформатикаИскусствоИсторияКомпьютерыКулинарияКультураЛексикологияЛитератураЛогикаМаркетингМатематикаМашиностроениеМедицинаМенеджментМеталлы и СваркаМеханикаМузыкаНаселениеОбразованиеОхрана безопасности жизниОхрана ТрудаПедагогикаПолитикаПравоПриборостроениеПрограммированиеПроизводствоПромышленностьПсихологияРадиоРегилияСвязьСоциологияСпортСтандартизацияСтроительствоТехнологииТорговляТуризмФизикаФизиологияФилософияФинансыХимияХозяйствоЦеннообразованиеЧерчениеЭкологияЭконометрикаЭкономикаЭлектроникаЮриспунденкция |
Приклад 3 Знайти 10 перших простих чиселBegin for n:=1 to 3 do Begin k:=2; while k<=8 do Begin y:=2*k+n; writeln(n:3, k:3,y:3); k:=k+2; end; end; end. Приклад № 2. Старовинна задача. Скільки можна купити биків, корів та телят, якщо вартість одного бика - 10 руб, однієї корови - 5 руб, а за одного теля платять 0,5 рубля. І якщо на 100 рублів потрібно купити 100 голів скоту. Позначимо через b кількість биків; k - кількість корів; t - кількість телят. Після цього можна записати два рівняння: 10b + 5k + 0.5t = 100 і b + k + t = 100 На 100 рублів можна купити: Отже отримуємо: Program Priklad_2; var b, k, t:integer; Begin for b:=0 to 10 do for k:=0 to 20 do for t:=0 to 200 do if (10b + 5k + 0.5t = 100) and (b + k + t = 100) then writeln('биків - ', b, ' корів - ', k,' телят - ',t); End. Приклад 3 Знайти 10 перших простих чисел.
В цій задачі використовуються такі алгоритми: Пошук декількох чисел (10), що задовольняють деякій умові (в нашій задачі: чи є число простим?); Визначення, чи є число простим?
Зрозуміло, що другий алгоритм вкладений у першій. Змінні:
Вхідних даних немає.
Вихідні: n –шукані числа (цілого типу)
Проміжні: k – лічильник шуканих чисел (цілого типу) p – ознака наявності дільників (логічного типу, p=false немає дільників, p=true є дільники) i – дільники та параметр циклу (цілого типу) Алгоритм Якщо згадати перший алгоритм, то у ньому: До циклу присвоюються початкові значення числу n та кількості чисел k. В тілі циклу repeat: Збільшується значення числа n; Число n перевіряється на якусь умову: якщо умова вірна, то число друкується та збільшується лічильник таких чисел k. Перевіряється умова завершення циклу: чи надрукована потрібна кількість таких чисел? Якщо так, то цикл завершується і кінець програми; Якщо ні, то перехід на початок тіла циклу. Зрозуміло, що цей алгоритм буде зовнішнім циклом у нашій програмі і перебір та перевірку чисел потрібно починати з числа 1. Умова, на яку у цьому циклі перевіряється число n, це – чи є це число простим? Алгоритм, який це визначає буде вкладений в перший. Згадаємо, що число n називається простим, якщо в нього немає дільників в інтервалі [2, n div 2]. Тепер згадаємо другий алгоритм, який перевіряє, чи просте число n: До циклу присвоюємо початкове значення ознаці p:=false. Тобто вважаємо, що дільників у числа n немає. У циклі for i:=2 to n div 2 do будемо шукати дільники числа n. Для кожного i будемо перевіряти умову n mod i=0 и, якщо вона вірна (тобто i є дільником n), то установимо значення ознаки p:=true. Коли цикл закінчиться, то перевіримо значення ознаки: якщо p=false, то дільників немає, число n просте. якщо p=true, то є дільники, число не просте. Другий алгоритм вкладений у перший перед перевіркою числа n (виділено жирним). Блок–схема програми
Програма
Var n,k,i:word; p:boolean; Begin n:=1; k:=0; Repeat n:=n+1; p:=false; for i:=2 to n div 2 do if n mod i=0 then Begin write(n,' '); k:=k+1; end; until k=10; End.
Результат роботи програми Відповідь 2 3 5 7 11 13 17 19 23 29 Приклад 4 Створити програму знахождення серед чисел від 1 до 100 всіх пар чисел, для яких їх сумма дорівнює їх добутку.
var k, a, b: integer; begin k:=0; for a:=1 to 100 do for b:=1 to 100 do begin if a+b=a*b then begin k:=k+1; writeln('Пара чисел: ',a, ', ', b); end; end; if k=0 then writeln('Таких чисел немає'); end.
Задачі для самостійного розв'язання:
1. 1000 шт. цегли можна перевозити візками місткістю 100, 300, 400 і 500 шт. цегли. Отримати всі можливі варіанти перевезень. Підрахувати їхню кількість. 2. Футбольний мяч коштує 65 грн. Отримати всі можливі варіанти оплати, якщо у покупця є 5-, 10-, і 20-гривневі купюри. Підрахувати кількість варіантів. 3. 14 л соку потрібно розлити у 4-, 3-, 2- та 1-літрові банки. Отримати всі варіанти розливу. Підрахувати їхню кількість. 4. Для натуральних чисел a, b, c і d, що приймають значення від 1 до n, знайдіть такі, для яких виконується рівність: a=b2+c2+d2. 5. Скласти програму знаходження серед чисел від 1 до 100 всіх пар чисел, для яких їх сума рівна їх добутку.
Поиск по сайту: |
Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Студалл.Орг (0.005 сек.) |