- •1.1.2 Структура функцій програми
- •1.1.3 Правила синтаксису
- •1.1.4. Типи даних
- •1.1.5. Функції введення та виведення даних
- •1.2 Приклад програми Умова задачі
- •Особливості використання функцій вводу та виводу
- •1.3 Технологія виконання лабораторної роботи
- •1.4. Варіанти завдань
- •1.5 Контрольні запитання
- •Розгалужені обчислювальні процеси Лабораторна робота 2
- •2.1 Теоретичні відомості
- •2.1.1. Вибір із двох альтернатив
- •2.1.2. Вкладеність конструкцій вибору
- •2.1.3. Операторний блок
- •2.1.4. Поліваріантний вибір
- •2.2. Приклади програм
- •2.3. Варіанти завдань
- •2.4 Контрольні запитання
- •Циклічні обчислювальні процеси Лабораторна робота 3
- •3.1 Теоретичні відомості
- •3.1.1. Цикл із передумовою
- •3.1.2. Цикл із постумовою
- •3.1.3. Цикл із лічильником
- •3.1.4. Переривання та продовження циклу
- •3.2. Приклад алгоритму та програми
- •3.3. Варіанти завдань
- •3.4 Контрольні запитання
- •Цикли з розгалуженням Лабораторна робота 4
- •4.1 Теоретичні відомості
- •4.1.1. Рекурентні співвідношення
- •4.1.2. Функції користувача
- •4.2. Приклад алгоритму та програми
- •Алгоритм задачі
- •Код програми
- •4.3. Варіанти завдань
- •4.4 Контрольні запитання
- •Рекурсивні функції Лабораторна робота 5
- •5.1 Теоретичні відомості
- •5.2. Приклад алгоритму та програми
- •5.3. Варіанти завдань
- •6.1.2. Оголошення та ініціалізація
- •6.1.3. Операції над покажчиками
- •6.1.4. Методи розв’язанні нелінійних рівнянь
- •6.2. Приклад алгоритму та програми
- •6.3. Варіанти завдань
- •6.4 Контрольні запитання
- •Одновимірні масиви Лабораторна робота 7
- •7.1 Теоретичні відомості
- •7.2. Приклад алгоритму та програми
- •Алгоритм програми
- •Код програми
- •7.3. Варіанти завдань
- •7.4 Контрольні запитання
- •Багатовимірні масиви Лабораторна робота 8
- •8.1 Теоретичні відомості
- •8.1.1. Оголошення багатовимірних масивів. Доступ до елементів
- •8.1.2. Базові операції обробки двовимірних масивів
- •8.2. Приклад алгоритму та програми
- •8.3. Варіанти завдань
- •9.1.2. Деякі функції обробки рядків
- •9.2. Приклад алгоритму та програми
- •9.3. Варіанти завдань
- •9.4 Контрольні запитання
- •Структури та масиви структур Лабораторна робота 10
- •10.1 Теоретичні відомості
- •10.2. Приклад алгоритму та програми
- •Алгоритм задачі
- •Приклад коду
- •10.3. Варіанти завдань
- •10.4 Контрольні запитання
9.2. Приклад алгоритму та програми
//отримати рядок без зайвих пробілів на початку, в кінці та в середині
// рядку
#include<stdio.h>
#include<string.h>
#include<conio.h>
char str [80]; //початковий рядок
char *ptr; //покажчик на рядок
int i, j, k; //параметри циклу, кількість слів
//================вилучення початкових пропусків===================//
void delspacebeg(char s[80])//параметр s – рядок, що обробляється
{
k=0; //лічильник кількості пропусків
while(s[0]==' ') //доки першим символом є пропуск,
{
k++; //зсунути рядок вліво на кількість пропусків
for(i=0;i<strlen(s)-k;i++)
s[i]=s[i+1]; //зсунути символи рядка на позиції пропусків
}
printf ("Number of spacesymbol of beginning %d \n\n", k);
s[strlen(s)-k]='\0'; //довжину рядка зменшити на кількість вилучених
// пропусків
puts (s);
}
//==================вилучення кінцевих пропусків=================///
void delspaceend(char s[80])
{ ptr=strrchr(s,' '); //позиція останнього входження пропуску
if (ptr != 0)
while(s[ptr-s]==' ' && s[ptr-s+1]=='\0') //доки у кінці рядка пропуск
{ s[ptr-s]='\0'; //заміна пропуску на символ кінця рядка
ptr=strrchr(s,' '); //визначити покажчик на символ пропуску
}
puts(s);
printf("Length of string after delete last spaces %d \n\n",strlen(s));
}
//=================вилучення проміжних пропусків===============//
void delbeetw(char s[80])
{ k=0; //кількість пропусків
for(i=0; i<strlen(s)-1; i++) {
while(s[i]==' ' && s[i+1]==' ') //доки є два підряд пропуски
{ k++; //лічильник пропусків, що йдуть підряд
for(j=i; j<strlen(s)-k; j++) //зсунути рядок вліво
s[j]=s[j+1];
s[strlen(s)-k]='\0'; //вилучити пропуски, що у кінці рядка
k=0; //обнулити лічильник пропусків для нового зсунення рядка
}
}
puts(s); //контрольне виведення
printf("Length of string after delete inside spaces %d \n\n",strlen(s));
}
//============== підрахунок кількості слів у рядку s =======//
void word(char s[80])
{
s[strlen(s)]=' '; //додавання символа пробіл до кінця рядка
s[strlen(s)+1]='\0'; //вставка пропуску після останнього символа
for(i=0,k=0; i<strlen(s); i++)
if(s[i]==' '&&s[i+1]!=' ') //якщо не існує два підряд пропуски, то
k++; //починається k-е слово
printf("Number of words %d \n", k);
}
//================ головна програма ==============================//
void main()
{
puts("Input string:");
gets(str);
puts(str); //введення та виведення рядка
puts("");
printf("\nLength of string %d \n",strlen (str));
delspacebeg(str); //видалення пробілів на початку рядка
printf("length of string after deleted beginning spaces %d \n\n",strlen(str));
delspaceend(str); //видалення пробілів у кінці рядка
delbeetw(str); //видалення пробілів у середині рядка
word(str); //визначення кількості слів
puts(str);
while(!kbhit()); //затримка зображення до натиснення будь-якої клавіші
}
Рис. 9.1. Результати роботи програми