- •“Київський політехнічний інститут” обчислювальна техніка та програмування - 1
- •Обчислювальна техніка та програмування - 1
- •Символи кодової таблиці ascii
- •Умовні переходи на мові "паскаль"
- •1: Begin
- •Цикли на мові "паскаль"
- •Підпрограми на мові "паскаль"
- •Function Alfha(a,b:real; c:byte):real;
- •Function Beta:integer;
- •Procedure Sorter (a,b:real; c:byte; Var X,y:real);
- •Procedure Beep;
- •Uses crt;
- •Window (x1,y1,x2,y2);
- •Window (10,5,45,15);
- •Window (1,1,80,25);
- •TextColor (yellow);
- •TextColor (14);
- •Текстові та типізовані файли мови "паскаль"
- •Assign (f1, ’Data.Pas’);
- •Reset (f2);
- •Rewrite (f2);
- •Seek (f2, 7);
- •FileSize (f2),
- •FilePos (f2).
- •Побудова графіків функцій на мові "паскаль"
- •MoveTo (200, 100);
- •SetLineStyle (0,0,1);
- •OutText (’Текст для виводу’);
- •OutTextXy (200,100,’Текст для виводу’);
- •SetTextStyle (0,0,0);
- •SetTextJustify (1,1);
- •PutPixel (150,50,green);
- •ClearDevice;
- •Бібліотечний модуль на мові "паскаль"
- •Interface
- •Implementation
- •Динамічні змінні мови "паскаль"
- •SetFillStyle (1, white);
- •Об’єктно-орієнтоване програмування на мові "паскаль"
- •New (Person, Init);
- •Destructor Done; Virtual;
- •Dispose (Person, Done);
- •Форматований ввід та вивід даних на мові “cі”
- •Printf(“керуючий рядок”,аргумент1,аргумент2, ...);
- •Scanf(“керуючий рядок”,аргумент1,аргумент2,...);
- •Scanf(“%d %f %c %s”,&I,&j,&k,l);
- •Scanf(“%d %*d %d”, &I,&j);
- •Scanf(“%d,%d”,&n,&m);
- •Оператори організації переходів на мові "сі"
- •1.2. Для організації умовного переходу по одному із багатьох варіантів доцільно використовувати оператор switch. Він має наступний формат:
- •Організація циклів на мові "сі"
- •Одновимірні та двовимірні масиви на мові "сі"
- •Char b[30];
- •Char a[10][20];
- •Записи, вкладені записи, масиви записів на мові "сі"
- •Int month;
- •Int year;};
- •Int class, age;};
- •Робота із бінарними та текстовими файлами
- •File *lst;
- •Int fflush (вказівник_на_файл);
- •Int fgetc(вказівник_на_файл);
- •Int fputc(вказівник_на_файл);
- •Int fread (вказівник_на_масив, розмір_об’єкта, кількість_об’єктів , вказівник_на_файл);
- •Int fwrite(вказівник_на_масив, розмір_об’єкта, кількіст_об’єктів , вказівник_на_файл);
- •Int fseek(вказівник_файла, зміщення, поч. Значення);
- •3. Контрольні запитання
- •Робота з функціями на мові “сі”
- •Тип_функції назва_функції(тип1 параметр1, ..., тип_n параметр_n);
- •Int main(int argc, char *argv)
- •3.1. Який синтаксис функцій у мові “сі”.
- •Комп’ютерний практикум № 17 графічний режим екрану на мові “ci”
- •Initgraph(int *driver, int *mode, char *path);
- •Void *pimage;
- •Void *malloc(об'єм_пам’яті_в_байтах);
- •Imagesize(x1,y1,x2,y2);
- •Putimage(x1, y1, вказівник, вид_вставки);
- •Вирішення диференційних рівнянь методом ейлера
- •Основи роботи в середовищі “turbo pascal 7.0” та “turbo c 3.0”
- •Комп’ютерний практикум № 17. Графічний режим екрану
Організація циклів на мові "сі"
Мета практикуму – розробка програмного забезпечення на мові програмування "СІ" з реалізації алгоритмів циклічних розрахунків.
ТЕОРЕТИЧНІ ВІДОМОСТІ
1.1. Якщо кількість повторень у циклі відома заздалегідь, доцільно використовувати оператор організації циклів for. Структура оператора має наступний вигляд:
for(<вираз1>;<вираз2>;<вираз3>)<тіло циклу>;
Вираз 1 слугує для присвоєння початкового значення керуючої змінної; вираз 2 – для перевірки виконання продовження циклу; вираз 3 – для зміни керуючої змінної.
Будь-який з трьох виразів у циклі for може бути відсутнім. Проте, крапка з комою повинна залишатись.
Для організації нескінченного циклу може бути використаний вираз:
for(;;) <тіло циклу>;
Якщо тіло циклу складається більш ніж з одного оператору, то воно виділяється фігурними дужками {}.
Приклад 1. За допомогою оператора for вивести на екран тричі текст “Electrical Drive”, розрахувати факторіал n!=1*2*3*4*…*n, та показати процес його обчислення.
#include <stdio.h>
main( )
{int i,j=1,n;
printf("\n");
for(i=1;i<=3;i++)printf("Electrical Drive\t");
printf("\nInput value of n\n");
/*введіть величину n*/
scanf("%d",&n);
for(i=1;i<=n;i++) j*=i;
printf("n!=%d",j);
j=1;
printf("\n");
for(i=1;i<=n;i++)printf("%d\t",(j*=i));}
1.2. У випадку, коли кількість повторень у циклі заздалегідь не відома, доцільно використовувати оператор циклів while. Структура оператора має наступний вигляд:
while(<умова>) <тіло циклу>;
Тіло циклу виконується доти, доки умова істинна.
Приклад 2. Скласти програму, яка дозволяє визначити порядковий номер першої введеної букви R в послідовності символів, використовуючи оператор while.
#include <stdio.h>
main( )
{int i=1;
printf("\nInput string of symbols\n");
/*введіть рядок символів*/
while((getchar())!='R')i++;
printf("Symbol R is %d",i);
/*символ R є*/
}
1.3. У циклі do-while, на відміну від циклів for та while, спочатку виконується тіло циклу, а вже потім виконується перевірка істинності умови. Таким чином, тіло циклу do-while виконується принаймі один раз. Структура оператора має наступний вигляд:
do <тіло циклу> while(<умова>);
Приклад 3. Скласти програму, яка дозволяє визначити порядковий номер першої введеної букви R в послідовності символів, використовуючи оператор do while.
#include <stdio.h>
main( )
{int i=0;
printf("\nInput string of symbols\n");
/*введіть рядок символів*/
do i++;
while((getchar())!='R');
printf("Symbol R is %d",i);
/*виведення номера символу R */
}
1.4. При роботі із циклами for, while, do-while зручно використовувати оператори break та continue, які зазвичай використовуються із оператором умовного переходу if. Оператор break забезпечує негайний вихід із циклу, а continue викликає зупинку поточної ітерації та перехід до наступної.
1.5. У мові "Сі" також реалізовано оператор безумовного переходу goto, який має наступний формат:
goto <мітка>;
Перед оператором, на який здійснюється перехід, ставиться мітка, яка відокремлюється від оператора двокрапкою:
<мітка>:<оператор>;
Необхідно відмітити, що використання оператора безумовного переходу goto може призвести до ускладнення розуміння програми, тому доцільно уникати її застосування;
Приклад 4. Написати програму, яка реалізує виведення на екран цілих чисел від 1 до 9
#include <stdio.h> int main(void)
{int i; i = 1; again: printf("%d ", i); i++; if(i<10)goto again; return 0;
}
ЗАВДАННЯ НА РОБОТУ
Розробити та запустити у роботу програму на мові програмування "Сі", яка вирішує задачу відповідно до заданого нижче варіанта.
2.1. Задана квадратна матриця n-го порядку. Ввести порядок та елементи матриці з клавіатури. Знайти мінімальний додатний елемент, розташований в області згідно рисунка 1а. Вивести результат екран.
2.2. Задана квадратна матриця n-го порядку. Ввести порядок та елементи матриці з клавіатури. Знайти максимальний від’ємний елемент, розташований в області згідно рисунка 1б. Вивести результат на екран.
2.3. Задана квадратна матриця n-го порядку. Ввести порядок та елементи матриці з клавіатури. Знайти суму елементів, розташованих в області згідно рисунка 1в.
2.4. Задана квадратна матриця n-го порядку. Ввести порядок та елементи матриці з клавіатури. Знайти максимальний елемент, розташований в області згідно рисунка 1г.
Рисунок 1а Рисунок 1б Рисунок 1в Рисунок 1г
2.5. Розрахувати значення кусково-заданої функції на інтервалі від 0 до 2π, з кроком 0.05. Вивести результати у вигляді таблиці, виведення організувати поекранно, по натисканню довільної клавіші.
2.6. Розрахувати значення кусково-заданої функції на інтервалі від 0 до π, з кроком 0.02. Вивести результати у вигляді таблиці, виведення організувати поекранно, по натисканню довільної клавіші.
2.7. Розрахувати значення кусково-заданої функції на інтервалі від 0 до 10, з кроком 0.1. Вивести результати у вигляді таблиці, виведення організувати поекранно, по натисканню довільної клавіші.
2.8. Розрахувати значення кусково-заданої функції на інтервалі від 0 до 20, з кроком 0.4. Вивести результати у вигляді таблиці, виведення організувати поекранно, по натисканню довільної клавіші.
2.9. Розрахувати значення кусково-заданої функції на інтервалі від 0 до 1, з кроком 0.01. Вивести результати у вигляді таблиці, виведення організувати поекранно, по натисканню довільної клавіші.
2.10. Розрахувати значення кусково-заданої функції на інтервалі від 0 до 5, з кроком 0.1. Вивести результати у вигляді таблиці, виведення організувати поекранно, по натисканню довільної клавіші.
КОНТРОЛЬНІ ЗАПИТАННЯ
3.1. Який оператор застосовується для реалізації циклу, кількість ітерацій в якому відома.
3.2. Які оператори застосовується для реалізації циклу, кількість ітерацій в якому не відома.
3.3. Яким чином можна впливати на виконання поточної ітерації.
3.4. Який синтаксис має оператор безумовного переходу.
3.5. В чому полягає різниця між операторами while та do-while.
Комп’ютерний практикум № 13