X Код для використання на сайті:
Ширина px

Скопіюйте цей код і вставте його на свій сайт

X Для завантаження презентації, скористайтесь соціальною кнопкою для рекомендації сервісу SvitPPT Завантажити собі цю презентацію

Презентація на тему:
Етапи та способи розв'язання задач на комп'ютері

Завантажити презентацію

Етапи та способи розв'язання задач на комп'ютері

Завантажити презентацію

Презентація по слайдам:

Слайд 1

Етапи розв'язання задач на комп'ютері Постановка задачі мовою чітко визначених математичних понять. Суть поставленої задачі, необхідні початкові дані та інформацію, що вважається результатами розв'язання. Побудова математичної моделі. Створюється інформаційна математична модель об'єкта, і чим достовірніше вона відображає реальні сторони об'єкта, тим точніші одержані результати. Розробка алгоритму, тобто послідовності вказівок для розв'язання задачі, відбувається на основі побудованої математичної моделі. При створенні складних алгоритмів застосовується метод покрокової розробки, сутність якого полягає в тому, що алгоритм розробляється «зверху донизу»: необхідно розбити алгоритм на окремі частини, кожна з яких розв‘язує свою самостійну підзадачу, і об'єднати ці підзадачі в єдине ціле.

Слайд 2

Складання програми. Алгоритм має бути записаний мовою програмування. Може здійснюватися теж за принципом «зверху донизу», що дозволяє одержати добре структуровану програму, читання і розуміння якої значно полегшене. Компіляція програми. Компонування програми. Налагодження програми. Полягає в підготовці системи тестів, які містять набір вихідних даних, що мають відомий результат. Експлуатація програми. Програма, що має відповідну документацію, може бути тиражована і запропонована іншим користувачам.

Слайд 3

Оператори Оператори - це основні елементи, з яких "будуються" програми, призначені для виконання встановлених дій. За конструкцією оператори поділяють на групи: прості, складені. За характером дій: оператори-вирази, умовні оператори, переходу, циклу. Окремий вид складеного оператора – блок. Це група довільних операторів, об’єднаних фігурними дужками {….}. Всередені блоку можна оголошувати локальні змінні. { double tm; tm=u; u=v; v=tm; }

Слайд 4

Оператори-вирази Кожен допустимий вираз, що закінчується ; clrscr(); z=3.5*x; Виділяють: оператори присвоєння та оператори звертання до функцій. Умовні оператори Реалізують розгалуження процесу виконання програми. Використовують два види : if , switch

Слайд 5

Оператор розгалуження if Оператор розгалуження призначений для виконання тих або інших дій в залежності від істинності або хибності деякої умови. Синтаксис оператора : if () ; [else ] Умова хибна, якщо вона дорівнює нулю, в інших випадках вона істинна Скорочений запис if (вираз) оператор; Вкладення умовних операторів. За правилами – кожна else-частина умовного оператора пов’язується з найближчим if (інакше використовуємо фігурні дужки).

Слайд 6

Приклад 1 /* програма виводить результат ділення двох дійсних чисел */ #include void main() {  float a,b,c;       printf ("Введiть число a :\n");       scanf ("%f",&a);       printf ("Введiть число b :\n");       scanf ("%f",&b);       if (b==0) printf ("Дiлення да нуль !\n");       else       {            c=a/b;             printf ("a : b == %g",c);       } }

Слайд 7

Приклад 2 Обчислити значення функції: #include double x,y; void main(void) { scanf ("%f",&x); if (x < 0) y = x + 1; else if (x < 10) y = x*x; else y = x - 4; printf ("%f\n",y); }

Слайд 8

Призначений для переривання роботи оператора вибору і операторів циклу. Перериває виконання внутрішніх операторів switch і передає керування оператору, наступному за оператором вибору. Якщо оператор break викликається в тілі циклу, то виконання циклу відразу припиняється і керування переходить до оператора, наступного за оператором циклу Оператор break

Слайд 9

Оператор switch Синтаксис : switch() {       case :             ;       break;       case :             ;       break;       ..............................................................       case :             ;       break;       [default:             ;] }

Слайд 10

Приклад : switch(i) {       case -1:   n++;       break;       case 0:   z++;      break;       case 1:    p++;       break; } За відсутності операторів break відбувається послідовне виконання всіх внутрішніх операторів, починаючи з вибраної гілки розгалуження.

Слайд 11

Оператор циклу з передумовою while Оператор while використовується для організації циклічного виконання дій, поки виконується певна умова. while () {   } Приклад 1: Обчислити суму чисел от 1 до 100. #include int s,i; void main(void) { s = 0; i = 100; while(i > 0) { s = s + i; i--; } printf("%d\n",s); }

Слайд 12

Тіло циклу – довільний оператор (зокрема блок). Оператором while виконуються наступні дії: 1) обчислюється значення виразу; 2) якщо значення виразу дорівнює нулю (умова хибна), то виконання циклу завершується і керування передається оператору, наступному за while; 3) якщо значення виразу ненульове (умова істинна), то виконується оператор тіла циклу; 4) відбувається повернення до п.1 для наступної перевірки умови виконання циклу.

Слайд 13

Приклад 2: Обчислити y=sin(x)+k, де х змінюється від xmin до хmax з кроком х. #include #include void main( ) { double x, y, xmin, dx, xmax, k=0.25; puts (“Введіть xmin, dx, xmax”); scanf (“%lf%lf%lf”, &xmin, &dx, &xmax); x=xmin; while (x

Слайд 14

Оператор циклу з постумовою do … while Оператор do…while використовується для організації циклічного виконання оператора або серії операторів, які називаються тілом циклу, до тих пір, поки умова не стане хибною. Синтаксис : do { ; } while (); Цикл обов’язково виконується ( хоч один раз). Використання оператора do … while зручне у випадках, коли значення виразу-умови залежить від результатів виконання тіла циклу.

Слайд 15

Приклад 1: Обчислити суму чисел от 1 до 100. #include int s,i; void main(void) { s = 0; i = 100; do { s = s + i; i--; } while (i > 0); printf ("%d\n", s); } Цикл do ... while припиняє виконання, коли умовний вираз обертається в нуль (стає невірним).

Слайд 16

Приклад 2. #include void main() {       int n,i;       float fact;       printf ("Програма обчислення n!.\n");       printf ("Введiть число n :\n");       scanf ("%d", &n);       i = 1;       fact = 1;       do {             fact *= i;             i++;       } while (i

Слайд 17

Оператор циклу for Оператор for забезпечує циклічне повторення деякого оператора певне число разів. Оператор, який повторюється називається тілом циклу. Повторення циклу звичайно здійснюється з використанням деякої змінної (лічильника), яка змінюється при кожному виконанні тіла циклу. Повторення завершується, коли лічильник досягає заданого значення. Синтаксис оператора: for ([ініціалізація]; [перевірка_умови];[ нове_значення]) { оператор ; }

Слайд 18

Формально роботу циклу можна описати такими кроками 1)якщо перший вираз (ініціалізація) присутній, то він обчислюється; 2) обчислюється вираз умови (якщо він присутній). Якщо умова дорівнює 0, тобто вона невірна, цикл припиняється, у протилежному випадку він буде продовжений; 3) виконується тіло циклу; 4) якщо присутній вираз зміни лічильника, то він обчислюється; 5) надалі перехід до пункту під номером 2. Поява у будь-якому місці циклу оператора continue призведе до негайного переходу до пункту 4. Приклад : обчислити суму чисел от 1 до 100 for (s=0, i=1; i

Слайд 19

Приклад: друк парних чисел у проміжку від 500 до 0 #include void main(void) {       long i;      for (i=500; i>=0; i-=2)       printf ("\n%ld", i);       printf ("\n"); } Для того, щоб продемонструвати гнучкість даного різновиду циклу, представимо весь перелік обчислень лише в одному операторі for, за яким слідує порожній оператор: #include void main(void) {       long i;       for (i=500; i>=0; printf ("\n%ld", i), i-=2) ; }

Слайд 20

#include #include void main ( ) { float x, xmin, dx, xmax,y; puts (“Введіть xmin, dx, xmax”); scanf (“%f%f%f”, &xmin, &dx, &xmax); for (x=xmin ; x

Слайд 21

Вкладення циклів Якщо у тілі циклу організовано внутрішні циклічні дії, то такі цикли називають вкладеними. Приклад – виведення на екран піраміди літер. #include #define rmax 8 /*висота піраміди*/ int main() { int r, left, right, pos; /*номери рядка,початку і кінця рядка*/ for (r=1, left=right=rmax; r

Слайд 22

Результат виконання програми А ВВВ ССССС DDDDDDD EEEEEEEEE FFFFFFFFFFF GGGGGGGGGGGGG HHHHHHHHHHHHHHH

Слайд 23

Оператор продовження continue Оператор continue передає управління на наступну ітерацію в операторах циклу do, for, while. Він може розміщуватися тільки в тілі цих операторів. В операторах do і while наступна ітерація починається з обчислення виразу умови. Для оператора for наступна ітерація починається з обчислення виразу зміни значення лічильника.       Приклад : while (i-- > 0) {       x=f (i);       if (x == 1) continue;            else y=x*x; }

Слайд 24

Оператор return Завершує роботу функції, в якій він виконується. Керування програмою повертається до оператора, з якого була викликана ця функція. return - без повернення значення для функцій, що мають тип void ; return вираз - повертає значення вказаного виразу (після перетворення до типу функції) в точку виклику фунуції. Виконання оператора return всередені main() завершує роботу програми.

Слайд 25

Використання псевдовипадкових чисел Генерування послідовностей рівномірно розподілених випадкових чисел. Потрібно підключити бібліотеку #include Функція int rand (void) повертає псевдовипадкове число з проміжку 0 ..INT_MAX ( 0,,32767) Функція void srand ( unsigned seed) змінює стартове значення функції rand , щоб у разі повторного запуску програми генерувалась інша послідовність чисел. Параметр функції – число, що слугуватиме затравкою для наступного виклику rand .

Слайд 26

У бібліотеці Borland C є додаткові функції: int random ( int hval ) - повертає псевдовипадкове число з діапазону 0 .. hval-1 ; void randomize ( void ) - для затравки генератора поточним значенням системного таймера. Приклад – формування цілого випадкового числа з проміжку RMIN .. RMAX ………… int numb; randomize (); numb = RMIN + random (RMAX – RMIN +1) ; …………

Слайд 27

Масиви Масиви належать до складених типів даних. Масив являє собою кінцеву іменовану послідовність величин одного типу (елементів масиву). Опис масивів у програмі відрізняється від опису простої змінної наявністю після імені квадратних дужок «[ ]», в яких задається кількість елементів масиву (розмірність). Нумерація елементів масиву починається з 0. Одновимірні масиви - це лінійна послідовність однотипних елементів (вектор). Кожен елемент має свій порядковий номер (індекс). Масиви повинні бути оголошені явно, щоб компілятор міг виділити неперервну ділянку пам’яті обсягом n * sizeof ( тип елементів)

Слайд 28

[n] = {значення};

Слайд 29

За замовчуванням, якщо в оголошеному масиві ініціюється тільки декілька перших елементів, то його інші елементи ініціюються нулями. Так, у випадку, коли float mas [10] = {2.2, 34.56}, останні вісім елементів масиву одержать значення 0. Доступ до елементів реалізується через індекси або через вказівники (адреси). У разі доступу через індекси застосовують конструкцію ім’я масиву [індекс елементу] Індекс може бути довільним виразом цілого типу: arr [ 2*k-5 ]

Слайд 30

Слайд 31

Приклад: Обчислити середнє арифметичне від’ємних елементів масиву х[10] та їх кількість. #include < stdio.h > void main(); { int mas [10], i, k, s; float sa; k=0; s=0; puts (“ Введіть елементи масиву\n”); for ( i=0; i

Слайд 32

Приклад: Знайти найбільший серед додатних елемент масиву x[10], його номер та сформувати новий масив y з від’ємних елементів заданого масиву. #include < stdio.h > void main() { int x[10], max, k, y[10], i, n; puts (“Введіть елементи масиву х\n”); for ( i=0; imax) { max=x[i]; n=i; }; else if (x[i]

Слайд 33

Слайд 34

Багатовимірні масиви. Масив, елементи якого є масиви меншої вимірності. Матриці являють собою порядковий запис декількох одновимірних масивів. Місце розташування кожного елемента визначається за допомогою двох індексів — номера рядка і номера стовпця, тобто порядкового номера в рядку. Індекси двовимірних масивів записуються в квадратних дужках і нумерація індексів починається з нуля (0). Двовимірні (і багатовимірні) масиви оголошуються так: int mas [2] [5] ={ 1, 5, 3, 7, 4, 10, 11, 13, 14, 25 }; int mas [ ][5] ={ 1, 5, 3, 7, 4, 10, 11, 13, 14, 25 }; int mas [ ][5] ={ { 1, 5, 3, 7, 4 }, {10, 11, 13, 14, 25} }

Слайд 35

Приклад: Читаючи матрицю по стовпчиках, побудувати вектор з від’ємних елементів матриці а[3][4] і підрахувати їх кількість. #include< stdio.h > void main() { int a[3][4], b[12], i, j, k; for (i=0; i

Слайд 36

Слайд 37

Приклад: Елементи головної та побічної діагоналей матриці С(4,4) поміняти місцями. Визначити максимальний елемент перетвореної матриці, а також номери рядка та стовпця, на перетині яких він знаходиться. #include void main() { const int n=4; int i, j, imax, jmax; float max, C[][n]={{3.6, 8.9, 1.9, 5.8}, {8.8, 4.1, 1.2, 6.3}, {2.5, 6.4, 0.1, 5.5}, {8.8, 4.1, 1.2, 6.3}}; puts ("massiv C[n][n]"); for (i=0; i

Слайд 38

float rab; for (i=0; i

Слайд 39

max=C[0][0]; imax=jmax=0; for (i=0; i

Завантажити презентацію

Презентації по предмету Інформатика