- •Лабораторна робота № 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. Графіка.
- •Деякі графічні функції
- •Приклад програми.
- •Варіанти завдань.
- •Контрольні запитання.
Контрольні запитання.
Що таке циклічний процес?
Які основні види циклів ви знаєте?
Які є види циклів з параметром?
При якій умові цикл завершує свою роботу?
Як в загальному описується цикл з параметром? Що означають його елементи?
Які відмінності циклу з параметром від циклів з передумовою та післяумовою?
Які обмеження накладаються на змінні, що беруть участь у циклі з параметром?
Яка відмінність ітераційного циклу від циклу з регулярною зміною аргумента?
Яка умова закінчення ітераційних обчислень?
Як порахувати кількість виконаних ітераційних циклів?
Лабораторна робота № 5,6. Одновимірні масиви. Двовимірні масиви.
Мета роботи:
Оволодіти правилами опису регулярних типів даних.
Вивчити операції та стандартні функції і процедури, які застосовуються до регулярних типів даних.
Здобути навички роботи з масивами і рядками символів.
Теоретичні відомості.(Pascal)
Масив – це структурний тип даних, який складається з фіксованої кількості елементів однакового (базового) типу.
Масив на мові Паскаль можна описати таким чином:
type <назва типу>=array [розмір] of <тип елементів>;
var <ідентифікатор,…>:<назва типу>; або var <ідентифікатор,…> array [розмір]of <тип елементів>;
Приклад: var A,B: array [1..10] of integer;
Масиви можуть бути одновимірними (вектори), двовимірними (матриці) та багатовимірними.
Достyп до кожного окремого елемента масиву відбувається за його індексом, наприклад, A[2], A[i], A[i,j]. Індексовані елементи масиву можна використовувати як звичайні змінні відповідного типу.
Для роботи з масивами як цілими об’єктами можна застосовувати лише операції відношення “дорівнює” (А=В), “не дорівнює” (A<>B) та операцію присвоєння (А:=В). Це допускається тільки тоді, коли масиви мають однакову структуру.
Рядок – це послідовність символів. При використанні у виразах рядок береться в лапки. Довжина рядка може змінюватися в межах від 0 до 255.
Рядок можна описати таким чином:
var <ідентифікатор,…>: string [максимальна довжина рядка];
Приклад: var St, St1, St2: string[50];
Доступ до кожного окремого символу рядка відбувається з допомогою його номера (індексу), наприклад, St[3], St[i], St[i+j].
Над рядками можна виконувати операцію конкатенації (+), яка зчеплює рядки в один рядок, і операції відношення (=, <>, >, >=, <, <=). Порівняння рядків відбувається зліва направо до першого символу, який не співпадає. Результатом порівняння є TRUE або FALSE.
Теоретичні відомості.(c)
Це структуровані типи даних. До цього типу відносяться ще записи і файли. Індекс елемента масиву завжди ціле число. Кількість елементів масиву задається при оголошенні і надалі не міняється.
Оголошення масиву в програмі:
<тип><ім’я масиву>[розмір1][розмір2]…
для одновимірного масиву <тип><ім’я масиву>[розмір1].
Розмір – кількість елементів.
Для двохвимірних масивів. <тип><ім’я масиву>[розмір1][розмір2].
Таким чином масиви оголошуються так само, як змінні, наприклад:
Int A[100]; (від а[0] до a[99])
Char B[30];
Float C[42];
В мові Сі не перевіряється вихід індекса за межі масиву (немає повідомлень про помилку при виконанні програми).
Звертання до елемента 2-вимірного масиву А[5][9]. В мові Сі існує тісний взаємозв’язок між вказівниками і масивами. Будь-яка дія, що досягається індексуванням масиву, може бути виконана також за допомогою вказівників, причому цей варіант буде швидшим.
Оголошення int a[5] визначає масив з 5 елементів: a[0], a[1], a[2], a[3], a[4].
Якщо об’єкт *Y оголошений, як Int *Y; то оператор Y = &a[0]; надає змінній Y адресу елемента а[0].
-
A[0]
A[1]
A[2]
A[3]
A[4]
Y вказує на черговий елемент масиву , а y +1 вказує на наступний елемент масиву (кількість байт , яку займає елемент масиву , враховується автоматично ).
Оскільки ім’я масиву є завжди адресою його нульового елемента, запис y = &a[0]; є аналогічним y =a ; тоді елемент a[i] можна представити , як *( a+ i). Записи y[i] та *(y + i) також еквівалентні . Таким чином, будь-який масив і його індексний вираз можна представити через вказівники. Треба тільки враховувати , що ім’я масиву – константа . Тому вирази типу а ++ ; і z = &a ; використовувати не можна , а у = а , і у ++ можна .
Приклад програми з використанням масивів . Вводиться рядок з десяти символів , які потім друкуються у зворотньому порядку .
#include<stdio.h>
main( )
{ char s[10]; /* оголошення масиву s з 10 елементів символьного типу */
int i ;
puts (“ Введіть рядок з 10 символів “) ;
for ( i = 0 ; i< 10 ; i++ ) scanf ( “%c “, &s[i]);/* Ввід елементів масиву s */
for ( i = 9 ; i >= 0 ; i - -) printf (“ %c”, s[i]);
/* друк елементів масиву s у зворотньому порядку*/
}
Інший приклад – програма , яка впорядковує масив з 10 цілих чисел за зростанням .
#include <stdio.h>
main()
{
int m[10],i, n, k, ind;
puts(“введіть елементи масиву”);
for (i= 0; i <10; i++) scanf(“%d”,&m[i]);
for (n = 9; n>=0; n--)
{
k = -32768; /*мінімальне ціле число*/
for (i = 0; i<= n; i++)
if (m[i]>k) {k=m[i]; ind=i;}
m[ind] = m[n]; m[n] =k;
/* на місце найбільшого елемента записуємо перший елемент, а на його місце – найбільший*/
}
puts(“впорядкований масив”);
for (i = 0; i< 10; i++) printf(“%d”,m[i]);
}
та сама програма на мові Pascal.
Program sort;
Var
M : array[1..10] of integer;
I, n, k, ind : integer;
Begin
Writeln(‘введіть елементи масиву’);
For i:= 1 to 10 do read(m[i]);
For n := 10 downto 1 do
Begin
K := -32768;
For i:= 1 to n do
If m[i] > k then
Begin
K := m[i];
Ind := i;
End;
M[ind] := m[n];
M[n] := k;
End;
Writeln (‘впорядкований масив’);
For i := 1 to 10 do writeln(m[i] :4);
End.