- •Спеціальність: Програмування для еом та ат
- •Практичне заняття №1
- •Контрольні запитання
- •Практичне заняття №2
- •Варіанти завдання
- •Практичне заняття №3
- •Задача 2.1.
- •Задача 2.2.
- •Задача 2.3.
- •Можливi помилки при виконаннi роботи
- •Варіанти завдань
- •Практичне заняття №4
- •Контрольнi питання
- •Варіанти завдань
- •Методичнi вказiвки та можливi помилки при виконаннi роботи
- •Практичне заняття №5
- •Варіанти завдань
- •Приклад виконання одного з варiантiв роботи.
- •Можливi помилки при виконаннi роботи
- •Практичне заняття №6
- •Варіанти завдань
- •Практичне заняття №7
- •Варіанти завдання
- •Практичне заняття №8
- •Варіанти завдань
- •I фактичних годин по категорiях працiвникiв
- •I фактичних годин по категорiях працiвникiв
- •Можливi помилки при виконаннi завдання
Варіанти завдань
Варiант 1
Ввести 3 числа, вибрати i надрукувати найменше з них.
Не використовуючи операторiв циклу, вводити i друкувати числа, поки не буде введений 0. Обчислити Їх суму, кiлькiсть, середнє арифметичне.
Написати програму, яка пiсля вводу порядкового номера дня тижня виводила б його назву.
Виконати завдання 2, використовуючи оператори циклу.
Варiант 2
Ввести 3 числа, вибрати i надрукувати найбiльше з них.
Не використовуючи операторiв циклу, вводити числа з iнтервалу (10,20) i друкувати їх квадрати. Ввiд припинити, коли чергове число вийде за межi iнтервалу.
Написати програму, яка запитувала б про мiсяць вашого народження (порядковий номер) i виводила повiдомлення типу: "Ви народилися взимку".
Виконати завдання 2, використовуючи оператори циклу.
Варiант 3
Написати програму, в якiй вводилося б дiйсне число, визначався його знак i друкувавася результат: 1-для додатнього числа, -1 - для вiд'ємного, 0 для 0.
Не використовуючи операторiв циклу, ввести 6 чисел, знайти їх суму i середнє арифметичне.
Написати програму, яка б пiсля вводу порядкового номера мiсяця виводила його назву.
Варіани 4
Написати програму, у якiй вводилося б цiле число i визначалося, чи дiлиться воно на 5.
Не використовуючи операторiв циклу, ввести 4 числа i знайти їх добуток.
Написати програму, яка б пiсля вводу порядкового номеру дня тижня визначала, робочий вiн чи вихiдний.
Виконати завдання 2, використовуючи оператори циклу.
Варiант 5
Написати програму, у якiй вводився б рiк i визначалося, чи вiн високосний.
Не використовуючи оператори циклу, ввести кiлька цiлих чисел i знайти суму i кiлькiсть тих з них, якi кратнi 5. Ввiд припинити пiсля вводу 0.
Написати програму, яка б пiсля вводу порякового номера мiсяця визначала, до якого кварталу вiн вiдноситься.
Виконати завдання 2, використовуючи оператори циклу.
Варiант 6
Написати програму, у якiй вводилися б 3 цiлi числа, вибиралося найменше з додатнiх, а якщо всi 3 числа вiд'ємнi, видавалося б повiдомлення про це.
Не використовуючи операторiв циклу, ввести кiлька чисел i знайти суму i кiлькiсть додатнiх, суму i кiлькiсть вiд'ємних. Ввiд припинити пiсля вводу 0.
Написати програму, яка б пiсля вводу порядкового номера мiсяця визначала, скiльки в ньому днiв (для невисокосного року).
Виконати завдання 2, використовуючи оператори циклу.
Варiант 7
Написати програму, у якiй вводилися б 3 цiлi числа, вибиралося найбiльше з вiд'ємних, а якщо всi 3 числа додатнi, виводилося б повiдомлення про це.
Не використовуючи операторiв циклу, ввести кiлька чисел i знайти суму i кiлькiсть тих з них, якi бiльшi 10. Ввiд припинити пiсля вводу 0.
Написати програму, в якiй кольорам спектру присвоювався б порядковий номер (1-7), i пiсля вводу порядкового номера виводилася б назва кольору.
Виконати завдання 2, використовуючи оператори циклу.
Варiант 8
Написати програму, у якiй вводилися б 3 цiлi числа i вибиралося найменше з них.
Не використовуючи операторiв циклу, ввести кiлька чисел i знайти суму i кiлькiсть тих з них, якi кратнi 10. Ввiд припинити пiсля вводу 0.
Написати програму, яка б пiсля вводу порядкового номера ноти визначала її назву.
Виконати завдання 2, використовуючи оператори циклу.
Варiант 9
Написати програму, у якiй вводилися б 3 цiлi числа i вибиралося найбiльше з них.
Не використовуючи операторiв циклу, ввести кiлька чисел i знайти суму i кiлькiсть тих з них, якi знаходяться в iнтервалi (1,8). Ввiд припинити пiсля вводу 0.
Написати програму, яка б пiсля вводу порядкового номера мiсяця визначала, до якого пiврiччя вiн вiдноситься.
Виконати завдання 2, використовуючи оператори циклу.
Варiант 10
Написати програму, у якiй вводилися б 3 цiлi числа i вибиралося найбiльше за модулем.
Не використовуючи операторiв циклу, ввести кiлька чисел i знайти суму i кiлькiсть тих з них, якi знаходяться в iнтервалi (1,8) i кратнi 2. Ввiд припинити пiсля вводу 0.
Написати програму, яка б пiсля вводу порядкового номера мiсяця визначала, скiльки в ньому днiв (для високосного року).
Виконати завдання 2, використовуючи оператори циклу.
Варiант 11
Написати програму, у якiй вводилися б 3 цiлi числа i виводилися у порядку зростання.
Не використовуючи операторiв циклу, ввести 4 цiлi числа i знайти добуток тих з них, якi бiльшi 0.
Написати програму, у якiй пiсля вводу вiдповiдного порядкового номера виводиться напрям (пiвнiч, пiвдень, захiд, схiд).
Виконати завдання 2, використовуючи оператори циклу.
Варiант 12
Написати програму, у якiй вводилися б 3 цiлi числа i виводилися в порядку спадання.
Не використовуючи оператори циклу, ввести 4 числа i знайти добуток тих з них, якi знаходяться в iнтервалi (1,4).
Написати програму, в якiй вводилися б покази барометра, i , залежно вiд них, видавався прогноз погоди: 990 i менше - дощ, 990-1100 - змiнна, бiльше 1100 - сухо.
Виконати завдання 2, використовуючи оператори циклу.
Варiант 13
Написати програму, у якi вводилися б три числа i виводилися в порядку зростання.
Не використовуючи операторiв циклу, ввести ряд чисел i знайти суму, кiлькiсть i середне арифметичне вiд'емних. Ввiд припинити пiсля вводу 0.
Написати програму, у якiй вводилася б кiлькiсть жителiв мiста (у тис.чл), i визначалося: мале воно (<100 тис.чл), середне (100-400 тис.чл), велике (400 тис-мiльйон), мiльйнер (бiльше мiльйона).
Виконати завдання 2, використовуючи оператори циклу.
Варiант 14
Написати програму, у якiй вводилися б 3 цiлi числа i виводилися в порядку спадання iх модулiв.
Не використовуючи операторiв циклу, ввести кiлька чисел i знайти суму i кiлькiсть тих з них, якi кратнi 7. Ввiд припинити пiсля вводу 0.
Написати програму, в якiй кожнiй частинi свiту присвоювався б вiдповiдний номер i пiсля вводу цього номера виводилася б вiдповiдна назва.
Виконати завдання 2, використовуючи оператори циклу.
Варiант 15
Написати програму, у якiй вводилися б 3 цiлi числа i виводилися в порядку зростання iх модулiв.
Не використовуючи операторiв циклу, ввести кiлька чисел i знайти суму i кiлькiсть тих з них, якi кратнi 2 i бiльших 8. Ввiд припинити пiсля вводу 0.
Написати програму, в якiй кожнiй планетi Сонячноi системи присвоювався б порядковий номер i пiсля вводу цього номера виводилася б вiдповiдна назва.
Виконати завдання 2, використовуючи оператори циклу.
Приклад виконання одного з варiантiв роботи
Задача 3.1.
#include <stdio.h>
main()
{ float x;
int y;
puts("введiть число:");
scanf("%f",&x);
y=(x>0?1:x?-1:0);
printf("\n,y=%d",y);
}
Задача 3.2.
#include <stdio.h>
main()
{ int a,i=0,s=0;
float sa;
m:printf("введiть число\n");
scanf("%d",&a);
s+=a;
i++;
if(i<6) goto m;
sa=s/6.0;
printf("s=%d",s);
printf(" sa=%f",sa);
}
Задача 3.3.
#include <stdio.h>
#include <string.h>
main()
{ int x;
char k[10];
a: puts("введiть порядковий номер мiсяця");
scanf("%d",&x);
switch (x)
{ case 1:{ strcpy(k,"сiчень"); break; }
case 2:{ strcpy(k,"лютий"); break; }
case 3:{ strcpy(k,"березень"); break; }
case 4:{ strcpy(k,"квiтень"); break; }
case 5:{ strcpy(k,"травень"); break; }
case 6:{ strcpy(k,"червень"); break; }
case 7:{ strcpy(k,"липень"); break; }
case 8:{ strcpy(k,"серпень"); break; }
case 9:{ strcpy(k,"вересень"); break; }
case 10:{ strcpy(k,"жовтень"); break; }
case 11:{ strcpy(k,"листопад"); break; }
case 12:{ strcpy(k,"грудень"); break; }
default: x=0;
}
if (x==0){ puts("\n такого мiсяця немае:\n");
goto a;
}
printf("\n мiсяць %d називаеться %s",x,k);
}
Задача 3.4.
#include <stdio.h>
#include <conio1.h>
main()
{ int i,j,s=0;
float sa;
clrscr();
for(i=0;i<6;i++)
{printf("\n");
printf("введи число \n");
scanf("%d",&j);
s+=j;
}
sa=s/6;
printf("сума чисел=%d",s);
printf("\n");
printf("середне арифметичне=%f",sa);
}
Можливi помилки при виконаннi роботи
Складання нерацiональних алгоритмiв. Програма перетворюється в хаотичне нагромадження умовних операторiв, її майже неможливо модифiкувати на випадок бiльшого числа аргументiв. Особливо це стосується задач про знаходження найбiльшого i найменшого значення, про впорядкування кiлькох чисел.
Створення ситуацiї зациклювання, коли нiколи не виконується умова виходу з циклу (або вхiд взагалi не передбачений - при вживаннi умовних операторiв i мiток) чи ситуацiї, коли цикл взагалi нi разу не виконується.
При роботi з оператором switch - не враховується те, що умови case неальтернативнi, тому слiд вживати оператор break, а також намагання перевизначити управляючу змiнну, що часто приводить до непередбачуваної роботи програми.
