- •“Київський політехнічний інститут” обчислювальна техніка та програмування - 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. Графічний режим екрану
3. Контрольні запитання
Які функції слугують для форматованого введення-виведення даних у файл.
Яка функція застосовується для відкривання файлу.
Чим відрізняється режим редагування від інших режимів відкривання файлів.
Які функції слугують для редагування бінарних файлів.
Яким чином можна визначити позицію вказівника у файлі.
Які функції слугують для посимвольного введення-виведення.
Комп’ютерний практикум № 16
Робота з функціями на мові “сі”
Мета практикуму - вивчення способів декларування функцій та та передачі в програму аргументів командного рядка на мові “СІ”.
ТЕОРЕТИЧНІ ВІДОМОСТІ
1.1. Застосування функцій зручне у випадку, коли необхідно виконати деяку кількість однотипних операцій, вони дозволяють значно підвищити ефективність програмування. Функції можна уявити собі як підпрограми. Функція складається із оголошення та тіла функції.
Оголошення функції здійснюється наступним чином
Тип_функції назва_функції(тип1 параметр1, ..., тип_n параметр_n);
Наприклад, оголошення функції f, яка повертає ціле значення, та має два цілі аргументи a та b, має вигляд:
int f(int a, int b);
Тіло функції знаходиться відразу після оголошення, та виділяється фігурними дужками {}. Тіло функції може містити ключове слово return, яке служить для повернення результату роботи функції в основну програму після її виконання, наприклад
return <вираз>;
Приклад 1. Зчитати з клавіатури рядок символів та вивести його на екран в зворотному напрямку. Виділити у рядку цифри та вивести їх окремим рядком.
#include <stdio.h>
#include <string.h>
/*Включення файлу з функцією strlen - визначення довжини рядка символів*/
int revers(char s[50]);
/*Оголошення функції revers - розвороту рядка*/
{int i,j,c;
for(i=0, j=strlen(s)-1; i<j; i++, j--)
{c=s[i]; s[i]=s[j]; s[j]=c;}
return(0);}
int cc(char s[], char sn[]);
/*Оголошення функції сс - пошуку цифр у рядку*/
{int i,k=0;
for(i=0;i<strlen(s);i++)
{if (s[i]>='0'&&s[i]<='9')
sn[k++]=s[i];}
sn[k]='\0';
return(0);
}
main()
{char s[50],sn[50];
puts("\n\nInput string");
/*Введіть рядок*/
do {scanf("%s",s);
revers(s);
printf("\n%s\n",s);}
while(s[0]=='0');
/* Цикл виконується до того часу поки не введено 0 */
cc(s,sn);
printf("\nNumerical symbols in the string are- %s",sn);
}
Приклад 2. Вивести масив цілих чисел на екран. При цьому продемонструвати передачу масиву до функції друку через функцію.
#include <stdio.h>
void display(int num[10]);
{
int i;
for(i=0;i<10;i++) printf("%d",num[i]);
}
int main(void)
{int t[10], i;
for(i=0;i<10;i++) t[i]=i;
display(t);
return 0;
}
Необхідно пам’ятати, що при виклику функції в якості її аргументів передаються копії змінних. Тому якщо всередині функції необхідно змінити змінні, які оголошені у основній програмі, їй необхідно передавати вказівники на відповідні змінні.
Приклад 3. Створити функцію, яка міняє місцями значення двох цілих чисел.
#include <stdio.h>
void swap(int *a, int *b)
{
int temp;
temp=*a;
*a=*b;
*b=temp;
};
void main(void)
{
int num1, num2;
printf("\n\nEnter two integers ");
scanf("%d %d",&num1,&num2);
swap(&num1,&num2);
printf("Swapped integers are %d %d",num1,num2);
getch();
}
Продемонструємо роботу із числовим масивом як із вказівником:
void display(int num[])
{int i;
for(i=0;i<10;i++) printf("%d",num[i]);
}
Тут аргумент num оголошений як цілочисельний масив невідомого розміру. Оскільки С не перевіряє межі масиву, дійсний розмір масиву не має ніякого відношення до параметру.
При оголошенні аргумента як вказівника функція має вигляд:
void display(int *num)
{int i;
for(i=0;i<10;i++) printf("%d",num[i]);
}
Основна програма main() також є функцією, і може повертати деяке значення в операційну систему після закінчення роботи. Зазвичай приймається, що в разі успішного виконання програма повертає 0.
1.2. Використання рекурсивних функцій. Функція є рекурсивною, якщо вона викликає сама себе. Розглянемо приклад.
Приклад 4. Обчислити значення факторіала n!, використовуючи рекурсивну функцію.
#include <stdio.h>
int factr(int n)
/*Опис функції обчислення факторіала з рекурсією*/
{int answer;
if (n==1) return 1;
answer=factr(n-1)*n;
return answer;
}
main()
{
int k=5;
printf("\nn!=%d",factr(k));
}
1.3. У мові “CI” передбачене передавання програмі аргументів із командного рядка: