Главная страница Случайная страница КАТЕГОРИИ: АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника |
Паскаль-рулетка.
У наступному прикладі число повторень циклу заздалегідь невідомо. Краще використовувати одну з різновидів циклу з перевіркою умови. Пропонуємо пограти в просту, але азартну гру (міцно закрийте двері у своїй кімнаті — батьки можуть побачити!) на угадування цілого числа від 1 до 10. Нехай програма «загадає» таке число, а користувач уведе передбачуване значення. Якщо число вгадане, програма поздоровить переможця, а якщо немає — попросить його повторити спробу ще раз. Кожна безуспішна спроба знижує призові бали. На самому початку гравцю призначається 10 призових балів. Опис алгоритму: · вибрати випадкове ціле число від 1 до 10; · вивести запрошення на введення цілого значення; · якщо введене число менше задуманого, сповістити про це гравцю, інакше повідомити йому про те, що введене число більше задуманого; · повторювати уведення цілого значення доти, поки число не буде угадано; · вивести поздоровлення переможцю і повідомити йому про набране число балів; · завершити роботу. Не виключена можливість того, що число буде угадано відразу. У цьому випадку вже не треба виводити підказку гравцю, тому варто використовувати цикл із передумовою while...do: program roulette» var number, guess, bonus: Byte; Begin bonus: = 10; Randomize; number: = Random(11); WriteLn('Задумане ціле число від 0 до 10. Угадайте! '); WriteLn; WriteLn(введіть ціле число від 0 до 10'); ReadLn(guess); while guess < > number do Begin Dec(bonus); WriteLn('Bи не угадали.'); WriteLn; if guess < number then WriteLn('Ваше число менше задуманого') else WriteLn('Ваше число більше задуманого'); WriteLn('Спробуйте ще раз! '); ReadLn(guess); End; WriteLn('Поздоровляю! Ви угадали і набрали ', bonus, ' окулярів'); WriteLn('Натисніть < Enter> '); ReadLn; End. У цій програмі використовуються нові оператори. Randomize — початкова установка спеціальної процедури — «генератора» випадкових чисел Random(n), що видає випадкові цілі числа від 0 до n-1, а також Dec (bonus) — виклик процедури, що зменшує на одиницю значення перемінної bonus. Пробуємо розбагатіти. Розглянемо приклад виконання циклу з післяумовою. Нехай хтось (ну, наприклад, ви, шановний читач), володіючи визначеною грошовою сумою, відкрив рахунок у банку. Ваше щорічно нараховує визначений відсоток від внеску (це називається «дисконтною ставкою відсотка»), відповідно збільшується і сума внеску. Вважається що цей відсоток не залежить від часу і від величини внеску. Така схема називається «правилом складних відсотків». Необхідно написати програму яка розраховує величину внеску і виводить цю величину для кожного року доти, поки величина внеску не подвоїться. От алгоритм рішення даної задачі: 1. Увести первісну величину внеску, дисконтну ставку відсотка і рік приміщення грошей у банк. 2. Розрахувати нову величину внеску. 3. Вивести рік і величину внеску цього року. 4. Повторювати кроки 2 і 3 доти, поки величина внеску не подвоїться. Текст програми:
|