
- •Лабораторна робота № 1.
- •Теоретичні відомості
- •Система меню Turbo Pascal 7.0.
- •Меню роботи з файлами file.
- •Меню редагування edit.
- •Меню пошуку інформації search.
- •Меню використання програми run.
- •Меню компіляції compile.
- •Меню наладки debug
- •Меню вікон window
- •Меню інформаційної допомоги help.
- •Редактор тексту середовища Turbo Pascal
- •Команди управління рухом курсора.
- •Контрольні запитання.
- •Лабораторна робота № 2. Лінійні програми. Арифметичні вирази.
- •Теоретичні відомості(Pascal)
- •Значення вбудованих функцій:
- •Процедури введення-виведення:
- •Теоретичні відомості (с) Дві прості програми
- •В цій програмі порівняно з першою використано декілька нових речей
- •Приклад програми
- •Завдання
- •Контрольні запитання.
- •Лабораторна робота № 3 Процеси розгалуження.
- •Теоретичні відомості.(pascal)
- •If логічний вираз then оператор1 else оператор 2;
- •If логічний вираз then
- •If умова1 then if умова2 then оператор1 else оператор 2
- •Теоретичні відомості.(c) Операції відношення і логічні операції.
- •Умовний оператор if.
- •If (умова) оператор;
- •If (умова) оператор;
- •Приклад програми
- •Блок-схема алгоритму
- •Варіанти завдань
- •Контрольні запитання:
- •Лабораторна робота № 4. Розв’язування на еом задач з циклічним обчислювальним процесом.
- •Теоретичні відомості (Pascal).
- •Теоретичні відомості (“с”)
- •Цикли While і do-While
- •Контрольні запитання.
- •Лабораторна робота № 5,6. Одновимірні масиви. Двовимірні масиви.
- •Теоретичні відомості.(Pascal)
- •Теоретичні відомості.(c)
- •Двовимірні масиви
- •Ініціалізація масивів.
- •Масиви вказівників
- •Лабораторна робота №7 Складання блок-схем і програм з використанням процедур і функцій.
- •Теоретичні відомості.(Pascal)
- •1. Процедури
- •Теоретичні відомості.(«с») Функції в мові Сі.
- •Оголошення функції.
- •Прототипи функцій.
- •Область дії і область видимості змінних.
- •Параметри і аргументи функції.
- •Void sort (int arr[ ],int n ) /*можна ще писати void sort(int arr[10], int n), або void sort(int *arr, int n)*/
- •Програма мовою с
- •Лабораторна робота №8. Обробка текстів.
- •Теоретичні відомості.(Pascal)
- •Процедури для роботи з рядками
- •Функції для роботи з рядками.
- •Теоретичні відомості.(с) Масиви символів . Рядки.
- •Функції для роботи з рядками.
- •Приклад виконання завдання.
- •Блок-схема
- •Програма мовою Pascal
- •Програма мовою с
- •Контрольні запитання.
- •Завдання .
- •Лабораторна робота № 9. Записи з фіксованою частиною.
- •Теоретичні відомості
- •Приклад програми
- •Варіанти завдань
- •Процедури та функції тільки для типізованих файлів
- •Теоретичні відомості (с) Вказівник на файлову змінну.
- •Текст програми (Pascal)
- •Блок-схема.
- •Завдання.
- •Лабораторна робота №11. Графіка.
- •Деякі графічні функції
- •Приклад програми.
- •Варіанти завдань.
- •Контрольні запитання.
Параметри і аргументи функції.
У мові С є особливість, зв’язана з тим, що всі аргументи функції передаються за значенням. При виклику функції в стеку виділяється місце для формальних параметрів. Туди заносяться значення фактичного параметра. Далі функція міняє і використовує значення зі стеку. При виході з підпрограми вони втрачаються.
В мові С викликана функція не може змінити змінні, вказані як фактичні параметри при зверненні до неї. Функція swap(), яка ніби повинна поміняти місцями значення, цього не робить.
Void swap (int a, int b)
{
int tmp = a;
a = b;
b = tmp;
}
Якщо це необхідно зробити, то треба в якості параметра передавати, не значення, а адреси змінних, які необхідно поміняти, (передавати вказівники на змінну). Такий прийом в мові С називається передача параметра за посиланням.
Функція swap() буде виглядати так:
Void swap (int *a, int *b)
{
int tmp = *a;
*a = *b;
*b = tmp;
}
Якщо в якості аргумента використовується масив, то є тільки один спосіб – передача параметра за посиланням. В якості аргумента функції треба вказати адресу початку масиву. Це можна зробити трьома способами:
function ( int ar[10] );
function ( int ar[ ] );
function ( int *ar );
При використанні масиву в якості аргумента функції можлива зміна значень елементів масиву в результаті роботи функції. ( бо вказується адреса початку масиву ).
Приклад – впорядкуваня масиву з використанням функції.
#include,stdio.h> /* сортуваня*/
void sort (int arr[ ], int n);
main ( )
{
int mass [10] = {1,3,-5,7,9,0,22,4,6,8};
int size = 10, i;
printf (“Before sorting:”);
for (i = 0; i<10; i++)
printf (“%d”,mass[i]);
printf (“\n”);
sort (mass,size);
printf (“ after sorting:”);
for (i=0; i<10;i++)
printf (“%d”,mass[i]);
return 0;
}
Void sort (int arr[ ],int n ) /*можна ще писати void sort(int arr[10], int n), або void sort(int *arr, int n)*/
{
int i, j, tmp;
for(i=0; i<n-1; i++)
for(j=0; j<n-1; j++)
if (arr[j+1] < arr[j])
{
tmp = arr[j];
arr[j] =arr[j+1];
arr[j+1] = tmp;
}
Елементи масиву mass[] змінять свої значення (будуть впорядковані).
Приклад. Дана прямокутна матриця А розміром 4*5. Скласти програму обчислення добутку ненульових елементів кожного рядка матриці. Обчислення добутку в рядку виконати у вигляді процедури.
Блок-схема Блок-схема
програми процедури
так
нік
Текст програми
Program prc;
Var
A:array [1..4,1..5] of real;
D: array [1..4] of real;
I,j : integer;
F : real;
Procedure dob(k : integer);
Var n : integer;
Begin
F:=1;
For n:=1 to 5 do
If a[k,n]<>0 then f:=f* a[k,n]
End;
Begin
For i:=1 to 4 do
For j:=1 to 5 do
Begin
Write(‘a[‘,i,’,’,j,’]=’);
Readln(a[i,j])
End;
For i:=1 to 4 do
Begin
Dob(i); d[i]:=f;
Writeln(‘d[‘,i,’]=’,d[i]:8:2)
End
End.
Приклад. Дана прямокутна матриця А розміром 4*5. Скласти програму обчислення добутку ненульових елементів кожного рядка матриці. Обчислення добутку в рядку виконати у вигляді функції.
Блок-схема Блок-схема
програми функції
так
нік