- •Лабораторна робота №10
- •Порядок виконання роботи
- •1. Варіанти завдання
- •2. Теоретичні відомості
- •Int len (char e[ ])
- •Int len (char *s)
- •Void invert(char e[ ])
- •Void main( )
- •Int index(char [ ], char [ ]);
- •Int row(char c1[ ], char c2[ ])
- •Void cone(char *c1, char *c2)
- •Void substr(char *c1, char *c2, int n, int k)
- •3. Приклад розв’язання задачі на еом (варіант 3, завдання №7)
- •Void ChangeStr(char **s1,int m)
- •3.3 Результати роботи програми
- •Контрольні запитання
- •Лабораторна робота №11
- •Тема: Особливості роботи з одномірними динамічними масивами
- •Мета роботи: Отримання практичних навиків у роботі з одномірними динамічними масивами в мові c
- •Порядок виконання роботи
- •1. Варіанти завдання
- •2. Теоретичні відомості
- •Void main()
- •3. Приклад розв’язання задачі на еом (варіант №30)
- •3.2. Визначення змінних програми
- •3.3. Розробка тексту програми Крім файлів:
- •Int main(void) {
- •3.4. Налагодження програми
- •3.5. Результати роботи програми
- •Контрольні запитання
- •2. Теоретичні відомості
- •Int**array;
- •Void quart(int n, float * х)
- •Void main()
- •Void quart (int n, float X [ ])
- •3. Приклад розв’язання задачі на еом (варіант №30)
- •3.1. Розробка алгоритму вирішення
- •3.2. Представлення матриці в пам'яті
- •3.3. Визначення змінних програми (варіант 1)
- •Int size;
- •3.4. Розробка тексту програми (варіант 1)
- •Void fill(int *, int);
- •Void fill(int *a, int s) {
- •3.5. Відмінності для варіанту реалізації 3
- •Void fill(int far **, int);
- •Void fill(int far **a, int s) {
- •3.6. Налагодження програми
- •3.7. Результати роботи програми
- •Контрольні запитання
- •Лабораторна робота №13
- •Порядок виконання роботи
- •1. Варіанти завдання Завдання 1
- •2. Теоретичні відомості
- •Void main( )
- •Void main( )
- •Void main( )
- •3.Стандартні функції для роботи зі стрічками (бібліотека string.H)
- •4. Приклади використання стандартних функцій для роботи зі стрічками
- •Функція аналогічна до stpcpy, strcpy, strncat
- •Функція аналогічна до strcspn, strrchr, strspn, strstr
- •Int far _fstrcmp(const char far *s1, const char far *s2);
- •Функція аналогічна до stpcpy, strncpy
- •- Size _t maxlen - максимальне число символів, які копіюємо з вихідної стрічки в результуючу.
- •Приклад: /*strncpy/cpp*/
- •5. Приклад розв’язання задачі на еом (варіант 2)
- •5.1. Розробка алгоритму вирішення
- •5.2 Розробка тексту програми
- •Int main()
- •4.3 Результати роботи програми
- •Контрольні запитання
- •Лабораторна робота №14
- •Порядок виконання роботи
- •1. Варіанти завдання
- •2. Теоретичні відомості
- •Void main( )
- •Приклади розробки функцій для обробки текстової інформації
- •Int len (char e[ ])
- •Int len (char *s)
- •Void invert(char e[ ])
- •Void main( )
- •Int index(char [ ], char [ ]);
- •Int row(char c1[ ], char c2[ ])
- •Void cone(char *c1, char *c2)
- •Void substr(char *c1, char *c2, int n, int k)
- •3. Приклад розв’язання задачі на еом (завдання 2, варіант 7)
- •Void ChangeStr(char **s1,int m)
- •4.3 Результати роботи програми
- •Контрольні запитання
- •Лабораторна робота №15
- •Порядок виконання роботи
- •Варіанти завдання
- •Теоретичні відомості
- •Int pole2 ;
- •Приклад розв’язання задачі на еом (варіант №30)
- •Розробка алгоритму розв’язання задачі
- •Визначення змінних програми
- •Розробка тексту програми Текст програми починаємо з підключення файлу stdio.H.
- •Int main(void) {
- •If (!strcmp(mm[n].Name,"***")) break;
- •Контрольні запитання
- •Лабораторна робота №16
- •Порядок виконання роботи
- •1. Варіанти завдання
- •Теоретичні відомості Читання і запис текстових файлів
- •Int main ()
- •Приклад розв’язання задачі на еом (варіант 6)
- •Контрольні запитання
- •Лабораторна робота №17
- •Порядок виконання роботи
- •Варіанти завдання
- •Теоретичні відомості Читання і запис двійкових файлів
- •Відкриття двійкових фалів
- •Файли з послідовним доступом
- •Запис даних у файл c послідовним доступом
- •Int main()
- •If ( ! outf)
- •Int array[100];
- •Int main()
- •If ( ! inpf)
- •Int array[100];
- •Файли з довільним доступом
- •Int main()
- •If ( ! inpf)
- •Int main()
- •If ( ! outf)
- •Передача файлів між комп’ютерами.
- •Програмне підтвердження зв’язку
- •Перекачування файлу
- •Void send_file(fname)
- •Void wait(port)
- •Int port;
- •Прийом файлу
- •Void rec_file()
- •If(ferror(fp)) {
- •Void get_file_name(f)
- •Приклад розв’язання задачі на еом (варіант 10)
- •Контрольні питання
- •Література
3. Приклад розв’язання задачі на еом (варіант 3, завдання №7)
3.1 Розробка алгоритму вирішення
Рисунок 10.1 Логічна схема програми, що міняє і-ту стрічку з і+1
3.2 Розробка тексту програми
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <conio.h>
#include <alloc.h>
void ChangeStr(char **,int);
int main()
{
char s[1],**str;
int n,i;
clrscr();
while (1)
{
printf("\n vveditye kilkisty strichok n=");
scanf("%d",&n);
if (n>=1&&n<=10)
break;
printf("\n ERRORS!!! 1<=n<=10 \n");
}
str=(char**)malloc(n*sizeof(char*));
for(i=0;i<n;i++)
str[i]=(char*)malloc(80*sizeof(char));
printf("vvedity %d strok \n",n);
gets(s);
for(i=0;i<n;i++)
{printf("string[%d]=",i+1);
gets(str[i]);
}
printf("\n----------pislya zminu strichok mayemo takuy masiv---------\n");
ChangeStr(str,n);
for(i=0;i<n;i++)
{
printf("string[%d]=",i+1);
puts(str[i]);
}
free(str);
getch();
return 0;
}
Void ChangeStr(char **s1,int m)
{
char ss[80];
int j;
for (j=0;j<m-1;j++)
{
strcpy(ss,s1[j]);
// puts(ss);
strcpy(s1[j],s1[j+1]);
strcpy(s1[j+1],ss);
}
}
3.3 Результати роботи програми
Зразок результатів програми наведений нижче:
Контрольні запитання
-
Що таке масив? Назвати основні принципи роботи з масивами.
-
Що таке ініціалізація масиву?
-
Робота із символьними рядками – це робота з масивами якого типу?
-
Які бібліотеки необхідно підключати для роботи зі стрічками?
-
Які є способи ініціалізації стрічок?
-
Як відбувається ввід стрічок, які функції бібліотеки при цьому використовуються?
-
За допомогою яких функцій відбувається вивід стрічок?
-
Які оператори використовуються для визначення довжини стрічки?
-
Як відбувається пошук в стрічці входження під стрічки?
-
Основні стандартні функції для роботи зі стрічками.
-
Яка функція призначена для копіювання стрічки?
-
За допомогою якої функції відбувається інвертування стрічки?
-
Назвати приклад використання стрічок в якості параметрів функцій.
Лабораторна робота №11
Тема: Особливості роботи з одномірними динамічними масивами
Мета роботи: Отримання практичних навиків у роботі з одномірними динамічними масивами в мові c
Порядок виконання роботи
-
Ознайомитися з теоретичними відомостями.
-
Розробити схему алгоритму та програму, в якій об’явити масив цілих чисел і заповнити його випадковими значеннями. Розмір масиву і діапазон значень його елементів задані в Вашому варіанті індивідуального завдання, де також вказано, яку обробку масиву необхідно виконати.
-
Скласти звіт за результатами лабораторної роботи.
4. Зробити висновки.
1. Варіанти завдання
Таблиця 11.1 – Варіанти завдання |
|||
№ варіанту |
Розмірність масиву |
Діапазон значень |
Що потрібно зробити |
1 |
50 |
-100 - 100 |
Замінити всі елементи з негативним значенням на значення мінімального не рівного 0 позитивного елемента |
2 |
200 |
-50 - 50 |
Підрахувати кількість пар сусідніх елементів з однаковими значеннями |
3 |
200 |
0 - 100 |
Підрахувати кількість ділянок, які утворюють неперервні послідовності чисел зі значеннями, які не зменшуються |
Таблиця 11.1 - Варіанти завдання (продовження) |
|||
4 |
200 |
-50 - 50 |
Підрахувати кількість пар сусідніх елементів, які мають протилежні знаки |
5 |
100 |
-100 - 100 |
Вивести початкові індекси всіх неперервних послідовностей позитивних чисел, довжина яких більше 5 |
6 |
100 |
-100 - 100 |
Знайти ту неперервну послідовність позитивних чисел, сума елементів якої максимальна |
7 |
100 |
-100 - 100 |
Розмістити всі елементи з позитивними значеннями в лівій частині масиву, елементи з негативними значеннями - в правій, а нулі - між ними |
8 |
100 |
-100 - 100 |
Замінити всі елементи з негативними значеннями середнім арифметичним значенням всіх позитивних елементів |
9 |
200 |
0 - 100 |
Знайти неперервну ділянку з 10 елементів, сума яких максимальна |
10 |
200 |
0 - 100 |
Знайти значення 3-го по величині елемента і значення всіх елементів масиву, які його перевищують, замінити на знайдене значення |
11 |
100 |
-50 - 50 |
Знайти кількість пар сусідніх елементів, які мають однакові абсолютні значення, але протилежні знаки |
Таблиця 11.1- Варіанти завдання (продовження) |
|||
12 |
200 |
-100 - 100 |
У всіх послідовностях позитивних чисел замінити значення елементів з максимальним і мінімальним значенням на середнє для цієї послідовності |
13 |
200 |
0 - 100 |
Знайти неперервну ділянку з 10 елементів, яка має найбільше середнє значення елементів |
14 |
100 |
-50 - 50 |
У всіх послідовностях позитивних чисел змінити порядок елементів на протилежний |
15 |
200 |
-100 - 100 |
У всіх послідовностях позитивних чисел обмежити знизу значення тих елементів, значення яких менше середнього для цієї послідовності |
16 |
100 |
-50 - 50 |
Замінити всі елементи з позитивними значеннями абсолютним значенням негативного елемента з максимальним абсолютним значенням |
17 |
200 |
-50 - 50 |
Вивести початкові індекси всіх неперервних послідовностей чисел зі значеннями, які не збільшуються |
18 |
100 |
-50 - 50 |
Вивести початкові індекси всіхнеперервнихзнакозмінних послідовностей чисел |
Таблиця 11.1- Варіанти завдання (продовження) |
|||
19 |
200 |
-50 - 50 |
Підрахувати кількість всіх неперервних послідовностей позитивних чисел, довжина яких більше 7 |
20 |
200 |
-50 - 50 |
Знайти з неперервних послідовностей негативних чисел ту, що має найбільше абсолютне значення середнього арифметичного елементів |
21 |
100 |
-100 - 100 |
Розмістити всі елементи з нульовими значеннями в лівій частині масиву, елементи з негативними значеннями - за ними, а за ними - елементи з позитивними значеннями |
2 |
100 |
-100 - 100 |
Обмежити значення всіх елементів, абсолютні значення яких перевищують середнє для позитивних і негативних елементів |
23 |
100 |
-100 - 100 |
Замінити кожен елемент на середнє арифметичне його і його сусідів зліва і справа. |
24 |
200 |
-50 - 50 |
Знайти неперервні ділянки, на яких сума елементів рівна 0 |
25 |
200 |
-50 - 50 |
Для кожного позитивного елемента визначити, чи є в масиві негативний елемент з протилежним значенням; якщо так, замінити ці елементи на 0 |
26 |
200 |
-50 - 50 |
Визначити, яке абсолютне значення зустрічається в масиві частіше інших |
Таблиця 11.1 - Варіанти завдання (продовження) |
|||
27 |
200 |
-50 - 50 |
Визначити середню довжину неперервних ділянок позитивних чисел |
28 |
100 |
-50 - 50 |
Поміняти місцями 1-й позитивний елемент з останнім позитивним елементом, 2-й – з передостаннім і т.д. |
29 |
100 |
-50 - 50 |
В усіх послідовностях негативних чисел поміняти місцями елементи з максимальним і мінімальним значеннями |
30 |
100 |
-50 - 50 |
В усіх послідовностях негативних чисел обмежити значення тих елементів, абсолютне значення яких перевищує абсолютне середнє для цієї послідовності |