Основне меню  

   

Реклама  

Скачуйте відеуроки для створення сайту за допомогою SMS Joomla 

реклама

 

 

   

Ми в Facebook  

Калькулятор расчета пеноблоков смотрите на этом ресурсе
Все о каркасном доме можно найти здесь http://stroidom-shop.ru
Как снять комнату в коммунальной квартире смотрите тут comintour.net
   

Реклама в мережі  

   

Статистика  

Користувачі
1
Статті
184
Перегляди статей
854895
   

Пошук по сайту  

   

Ми знаходимось тут  

   

Посібник Delphi  

ДОСТУПНИЙ ВИКЛАД,

ЦІКАВІ ПРИКЛАДИ, ВИХІДНІ КОДИ.

ЦІНА ДИСКА З МАТЕРІАЛАМИ - 500 грн. 

Якщо ваша карта обслуговується ПриватБанком тоді переведіть потрібну суму через Приват24 на карту    5168 7573 0556 9925 або натисніть на посилання "Перейти до оплати", щоб здійснити миттєвий платіж без комісії. Перейти до оплати!

 Звертайтесь за адресою еmail:kuzbyt@ukr.net

 
   

Посібник по C#  

 Вивчаємо сучасну мову  програмування C# 7.0

ПРОГРАМУЄМО в VISUAL STUDIO 2017

ЦІНА ДИСКА З МАТЕРІАЛАМИ - 1000 грн. 

Якщо ваша карта обслуговується ПриватБанком тоді переведіть потрібну суму через Приват24 на карту    5168 7573 0556 9925 або натисніть на посилання "Перейти до оплати", щоб здійснити миттєвий платіж без комісії. Перейти до оплати!

 Звертайтесь за адресою еmail:kuzbyt@ukr.net

 
   

Випадкове фото  

   

Наш відеоканал  

   

Відвідування сайту  

Яндекс.Метрика

 

   

Відеокурс по С++  

   

Рекомендуємо:  

   

Задача 1.
Умова: На дверях ліфта висіло загрозливе попередження про те, що двері зачиняються самі в той самий момент, коли зайвий за вагою пасажир переступить поріг ліфта. Котрий пасажир постраждає, якщо ліфт витримує вагу не більше S кг, а вага пасажирів, що стоять у черзі до ліфта, дорівнює відповідно a1, a2, a3, … an?
В цій задачі зручніше використовувати цикл с післяумовою, тому що спочатку необхідно дати можливість "ввійти" пасажиру в ліфт, а потім перевіряти, чи витримає його ліфт. Умовою виходу з циклу буде перевищення сумарної ваги пасажирів, що увійшли в ліфт, деякого заданого критичного значення. Для зберігання ваги чергового пасажиру в цій задачі ми будемо використовувати одну й ту саму змінну (А), так як після перевірки вага пасажира нас вже не цікавить.

 

Program Example_179; 
Uses crt; 
Var N:word;       {I – номер пасажира, що увійшов у  
                   ліфт} 
    Sum,A,S:real; {Sum – сумарна вага пасажирів, що  
                   знаходяться в ліфті, A – вага  
                   чергового пасажира, що увійшов до  
                   ліфта, S – критична вага, що може  
                   бути піднята ліфтом} 
Begin 
  Clrscr; 
  Sum:=0;     {На початку роботи програми в ліфті  
  N:=0;        немає пасажирів} 
  Write(‘Введіть критичну вагу, що піднімає ліфт:  ’); 
  Readln(S); 
  Repeat 
    Write(‘Введіть вагу чергового пасажира:  ’); 
     Readln(А); 
     Sum:=Sum+А; 
    N:=N+1; 
  Until Sum>S; 
  Writeln(‘Постраждає ’,N,’-й пасажир.’); 
  Readkey;	{Затримка зображення на екрані} 
End. 

Задача 2.
Умова: Капосний папуга навчився висмикувати у дідусі Василя волосся, яке ще залишилося у того на голові. Почавши з однієї волосини, він щодня збільшував порцію вдвічі. Через скільки днів дідусеві не знадобиться гребінець, якщо спочатку в нього на голові було аж Nволосин?
Аналогічно попередній задачі, аналізувати наявність волосся на голові необхідно після того, як папуга вже висмикнув чергову порцію волосся. А "знущання" над дідусем скінчиться тоді, коли гребінець йому стане непотрібним, тобто кількість волосся на голові стане дорівнювати нулю.
Зверніть увагу, що в цій задачі змінна S використовується для підрахунку чергової порції волосся, що підлягає висмикуванню капосним папугою.

Program Example_181; 
Uses crt; 
Var S,N,Sum:longint;  {S – кількість волосся, що буде  
                       висмикнуто, Sum – кількість  
                       волосся, що залишилося в  
                       дідуся на голові, N –  
                       початкова кількість волосся} 
    Day:word;          {Day – номер дня, який папуга  
                        знущається над дідусем} 
Begin 
  Clrscr; 
  Write(‘Введіть початкову кількість волосся в дідуся  
         на голові:  ’); 
  Readln(N); 
  If N=0 
  Then writeln(‘Дідусь вже лисий, папузі нічого робити!’) 
  Else 
    begin 
      Day:=0; 
      Sum:=N;      
      S:=1;       {Початкова кількість волосся, що  
                   буде висмикнутою капосним папугою} 
      Repeat 
        Sum:=Sum-S;  {Зменшення дідусевого волосся} 
        S:=S*2;       
        Day:=Day+1;   {Підрахунок номера дня} 
      Until Sum<=0; 
      Writeln(‘Папуга знущався над дідусем ’,Day,’ днів.’); 
    End; 
  Readkey;	{Затримка зображення на екрані} 
End. 

Задача 3.
Умова: Дано натуральне число n. Визначити кількість цифр у цьому числі.
Для розв'язання цієї задачі можна використати як цикл з передумовою, так і цикл с післяумовою. Однак, на наш погляд, другий варіант кращий, тому що навіть число "0" має у своєму складі одну цифру, а цикл з передумовою цей випадок пропустить. Справа в тому, що умовою виходу з циклу і в тому, і в другому випадку буде "зникнення" числа, тобто перетворення його на нуль після відкидання чергової цифри, а, якщо число с самого початку дорівнює "0", то цикл з передумовою не виконається ні разу, а цикл с післяумовою виконається обов'язково і підрахує одну цифру. Програма для розв'язання цієї задачі має наступний вигляд:

Program Example_197_1; 
Uses crt; 
Var N:longint;      {N – задане число} 
    Count:byte;     {Count – кількість цифр в числі} 
Begin 
  Clrscr; 
  Write(‘Введіть натуральне число: ’); 
  Readln(N); 
  N:=abs(N);    {Знаходження модуля числа для  
                 позбавлення від помилкового введення  
                 ненатурального числа} 
  Count:=0;     {Початкове значення кількості цифр} 
  Repeat 
     Count:=Count+1; 
     N:=N div 10;  {“Відкидання” останньої цифри  
                    числа після підрахунку} 
  Until N = 0; 
  Writeln(‘Кількість цифр в числі = ’,Count); 
  Readkey;	{Затримка зображення на екрані} 
End. 

Задача 4.
Умова: Під час обчислення результатів деяких експериментів виникає необхідність отримання результату із заданою похибкою. Нехай результатом є нескінченна сума, що задається певною формулою, і відома похибка e (> 0) для знаходження наближеного значення результату. Будемо вважати, що необхідна точність досягнута, коли додавання наступного доданку змінює суму на величину, меншу за e. Обчислити: 

В даній задачі ми візьмемо додаткову змінну (S), яка буде зберігати наступний доданок до нескінченої суми. Умовою виходу з циклу буде зменшення величини цього доданку до значення e по модулю. Зверніть увагу ще на те, що вираз  фактично призводить до знакочергування в нескінченній сумі, тому, щоб не знаходити степінь числа -1 можна враховувати номер доданку і, якщо він буде парним, віднімати черговий доданок, якщо ні - додавати.

Program Example_208_4; 
Uses crt; 
Var i:word;          {i – номер доданка}  
    S,Sum:real;      {S – черговий доданок, Sum –  
                      нескінченна сума} 
    Epsilon:real;    {Epsilon – задана похибка  
                      обчислень} 
Begin 
  Clrscr; 
  Write(‘Введіть значення похибки: ’); 
  Readln(Epsilon); 
  Sum:=0;         {Початкове значення дорівнює 0 для  
                   накопичення суми} 
  S:=1;        {Перший доданок нескінченної суми за  
                умовою дорівнює “1”} 
  i:=1; 
  repeat 
    if i mod 2 =0  
    then Sum:=Sum + 1/S 
    else Sum:=Sum - 1/S; 
    i:=i+1; 
    S:=S*i; 
  until 1/S<=Epsilon; 
  Writeln(‘Результат обчислень = ’,Sum:8:2); 
  Readkey;	{Затримка зображення на екрані} 
End. 

Задача 5.
Умова: На скільки років необхідно покласти в банк суму Х грошових одиниць, щоб одержати суму N грошових одиниць (N > X), якщо банк нараховує 200% річних?
Очевидно, що умовою виходу з цього циклу буде отримання заданої суми грошей. Якщо за умовою задачі N > X, то кожну перевірку ми будемо виконувати після того, як до вкладеної суми додамо щорічний банківський процент.

Program Example_209; 
Uses crt; 
Var X,N:real;       {X – початковий вклад, N – бажана  
                     сума}  
    Rez:real;       {Rez – результуюча сума на  
                     рахунку} 
    Years:longint;  {Years – термін, протягом якого  
                     сума лежала в банку} 
Begin 
  Clrscr; 
  Write(‘Введіть початкову суму вкладу: ’); 
  Readln(Х); 
  Write(‘Введіть бажану суму вкладу: ’); 
  Readln(N); 
  If N<=X 
  Then writeln(‘Ви вже маєте бажану суму!’) 
  Else  
    Begin 
      Rez:=X; 
      Years:=0; 
      Repeat 
        Rez:=3*Rez;  {200% річних збільшують за рік  
                      вклад втричі} 
        Years:=Years+1; 
      Until Rez>=N; 
      Writeln(‘Ви отримаєте бажану суму через ’,years,’ років.‘); 
    End; 
  Readkey;	{Затримка зображення на екрані} 
End. 

Задача 6.
Умова: Скласти програму, яка б допомогла працівникам ДАІ визначати кількість порушників перевищення швидкості на трасі, якщо відомо, що на даному проміжку траси встановлено обмеження на швидкість Vmax, а прилад фіксує швидкість автомобілів V1V2, …, Vn.
В даній задачі ніяким чином не обумовлена умова виходу з циклу, тому є пропозиція: процес підрахування порушників необхідно закінчити тоді, коли чергове введене число буде недодатнім (дійсно, з від'ємною або нульовою швидкістю автомобіль рухатися не може). Для тимчасового зберігання швидкості чергового водія ми будемо знову використовувати одну змінну. Програма, що виконує задані обчислення, має наступний вигляд:

Program Example_231; 
Uses crt; 
Var V,Vmax:real;  {V – швидкість чергового водія,  
                   Vmax – максимально дозволена  
                   швидкість}  
    Count:longint;{Count – кількість порушників} 
Begin 
  Clrscr; 
  Count:=0;    {На початку роботи порушники відсутні}      
  Write(‘Введіть значення максимально дозволеної швидкості: ’); 
  Readln(Vmax); 
  Vmax:=abs(Vmax);   {Знаходження модуля для  
                      виключення помилки введення  
                      від’ємної максимальної  
                      швидкості} 
  Repeat 
    Write(‘Введіть значення швидкості чергового водія: ’); 
    Readln(V); 
    If V>Vmax then Count:=Count+1; 
  Until V<=0; 
  Writeln(‘Кількість порушників ’,Count); 
  Readkey;	{Затримка зображення на екрані} 
End. 

Задача 7.
Умова: Дано натуральні числа n i a1a2, …, an. Визначити кількість членів ak послідовності a1a2, …, an, що кратні числу 3 і не кратні числу 7.
Взагалі цю задачу можна розв'язувати з використанням циклу з параметром, так як на початку роботи програми задається число n, що вказує кількість чисел, що вводяться. Але можна цю змінну використати для організації циклу з післяумовою і отримати інший розв'язок задачі, що вам і пропонується:

Program Example_234_2; 
Uses crt; 
Var n:word;       {n – кількість чисел, що вводяться}  
    a,count:word; {a – змінна, що зберігає чергове  
                   введене число; count – кількість  
                   чисел, що задовольняє заданій  
                   умові}  
Begin 
  Clrscr; 
  count:=0;     {На початку роботи кількість  
                 знайдених чисел дорівнює 0}      
  Write(‘Введіть кількість чисел, що будуть вводитись: ’); 
  Readln(n); 
  Repeat 
    Write(‘Введіть чергове число: ’); 
    Readln(a); 
    If (a mod 3 = 0) and (a mod 7 <> 0) 
    Then count:=count+1; 
    n:=n-1; 
  Until n<0; 
  Writeln(‘Кількість шуканих чисел = ’,count); 
  Readkey;	{Затримка зображення на екрані} 
End. 

Задача 8.
Умова: Дано натуральне число n і дійсні числа a1a2, …, an (a1 < > 0). Відомо, що в заданій послідовності є хоча б одне нульове значення. Розглядаючи члени послідовності, що розташовані до першого нульового члена, визначити середнє арифметичне членів.
Для розв'язку цієї задачі значення n, являється зайвим, якщо серед членів послідовності буде хоча б один нульовий елемент, тому ми враховувати цю змінну не будемо (хоча дітям можна пояснити, що у випадку відсутності нульового члена послідовності змінна n може використовуватись як додаткова для виходу з циклу, щоб виключити зациклення програми).
Зверніть увагу на те, що так як ми не знаємо, коли зустрінеться нульовий елемент, в програмі знаходиться сума всіх чисел послідовності (змінна Sum) та кількість введених чисел ( змінна сount), а після виходу з циклу вже знаходиться безпосередньо середнє арифметичне членів послідовності, як результат ділення суми на кількість чисел, зменшену на одиницю. Зменшення на одиницю відбувається тому, що фактично в тілі циклу буде підраховано один зайвий нульовий елемент (останній)

Program Example_251_5; 
Uses crt; 
Var count:word;   {count – кількість членів  
                   послідовності до першого нульового  
                   елемента}  
    a,Sum:real;   {a – черговий член послідовності,  
                   Sum – сума членів послідовності до  
                   першого “0”} 
    SA:real;      {SA – середнє арифметичне} 
Begin 
  Clrscr; 
  Sum:=0; 
  count:=0;    {Початкові значення дорівнюють “0”} 
  repeat 
    write(‘Введіть черговий член послідовності: ’); 
    readln(a); 
    Sum:=Sum+a; 
    count:=count+1; 
  until a=0; 
  SA:=Sum/(count-1);   
  Writeln(‘Середнє арифметичне = ’,SA:8:2); 
  Readkey;	{Затримка зображення на екрані} 
End. 

Додати коментар

Захисний код
Оновити

   

Поділіться з друзями

 
   

Сайт для перевірки своїх знань з програмування на сайті:http://www.quizful.net/test

Онлайн тести  для програмістів: https://proghub.ru/


 Розробка сайтів, інтернет-магазинів під ключ. Створення програмного забезпечення для обліку в магазинах,

гуртовнях, ведення власного бізнесу та інших. Написання дипломних та курсових робіт з програмування, баз даних.

 

Звертайтесь за адресою email:kuzbyt@ukr.net

 

 

© (C) Sambir, I.Kuzbyt