kol++; //Збільшуємо лічильник kol на одиницю
}
if (kol==2) //Умова: якщо кількість дорівнює 2, виводимо:
{
cout<<"2 3 5 7"<<"\n"<<"11 13 17 19"<<"\n";
goto p; //Перехід до мітки р:
}
else //інакше – виводимо:
{
cout<<"2 3 5 7"<<"\n"<<"11 13 17 19"<<"\n";
str1[0]=1; //
str2[0]=1; //Першим елементам матриць присвоюємо значення 1
str3[0]=1; //
str4[0]=1; //
str1[kol-1]=1; //
str2[kol-1]=3; //
str3[kol-1]=7; //Останнім елементам матриць присвоюємо відповідні
str4[kol-1]=9; // значення
for (i=1;i<=kol-2;i++) //Задаємо цикл
{
str1[i]=0; //
str2[i]=0; //Між першим та останнім елементами матриць всі елементи
str3[i]=0; //будуть дорівнювати 0
str4[i]=0; //
}
for (i=0;i<=3;i++) //Задаємо цикл
cout<<str1[i]; //Виводимо елементи матриці str1
cout<<" ";//Ставимо пробіл
for (i=0;i<=3;i++)//Задаємо цикл
cout<<str2[i]; //Виводимо елементи матриці str2
cout<<" ";//Ставимо пробіл
for (i=0;i<=3;i++)//Задаємо цикл
cout<<str3[i];//Виводимо елементи матриці str3
cout<<" ";//Ставимо пробіл
for (i=0;i<=3;i++)//Задаємо цикл
cout<<str4[i]; //Виводимо елементи матриці str4
cout<<" ";//Ставимо пробіл
}
p:;//Мітка р:
cout<<"\n"<<"Для виходу введіть EXIT:"<<"\n"; //Даємо запит
cin>>W; //Вводимо зайву перемінну W для затримки екрану
}//Кінець функції main()
2.30 Обчислення числа Фібоначі
Програма Proga30.срр призначена для обчислення числа Фібоначі з номером N
Вхідні дані: число n (тип int)
Вихідні дані: масиви чисел Фібоначі (тип double)
Блок-схема до програми Proga30.срр представлена на рисунку 2.9
#include<iostream.h> //Підключаємо бібліотеку iostream.h
void main() //Оголошуємо головну функцію main()
{
int i,n,W; //Оголошуємо перемінні I,n,W цілого типу
double a[50]; //та масив а типу (double)
cout<<"Числа Фібоначі:"<<"\n"; //Виводимо повідомлення
cout<<"Введіть n до 30"<<"\n "<<"k="; //Даємо запит
cin>>n; //Вводимо число n
a[1]=1; //Першому та другому елементам матриці а
a[2]=1; // присвоюємо значення 1
for(i=3;i<=n;i++) //Задаємо цикл
a[i]=a[i-1]+a[i-2]; // і-ий елемент матриці а дорівнює:
for(i=1;i<=n;i++) //Задаємо цикл
cout<<a[i]<<" "<<'\n'; //Виводимо елементи матриці а
cout<<"\n"<<"Для виходу введіть EXIT:"<<"\n"; //Даємо запит
cin>>W; //Вводимо зайву перемінну W для затримки екрану
}//Кінець функції main()
Рисунок 2.9 Блок-схема алгоритму до програми Proga30.срр
2.31 Видалення з рядку певних символів
Програма Proga1_1.срр призначена для видалення з рядку S1 усіх символів, які зустрічаються в рядку S2
Вхідні дані: рядок str1 (тип char)
рядок str2 (тип char)
Вихідні дані: Змінений рядок str1 (тип char)
#include <iostream.h> //Підключаємо бібліотеки iostream.h,
#include <string.h> //та math.h
char func(char str3[10],char str4[10])//Оголошуємо функцію, яка по
{ //заданим рядкам S1 та S2,
for(int i=0;str3[i]+='\0';i++) //видаляє з рядка S1 всі символи
for(int j=0;str4[j]+='\0';j++) //які зустрічаються в рядку S2
{ //
if(str3[i]==str4[j]) //
cout<<str4[j+1]; //
else cout<<str3[i]; //
} //
return 0; //
} //
void main() //Оголошуємо головну функцію main()
{
int W; //Оголошуємо перемінну W цілого типа,
char str1[10]; //матриці str1 таstr2 символьного типу
char str2[10];
cout<<"Введіть рядок 1: "; //Даємо запит
cin>>str1; //Вводимо перший рядок
cout<<"Введіть рядок 2: "; //Даємо запит
cin>>str2; //Вводимо другий рядок
func(str1,str2); //Викликаємо функцію func
cout<<"\n"; //Переводимо курсор на новий рядок
cout<<"\n"<<"Для виходу введіть EXIT:"<<"\n"; //Даємо запит
cin>>W; //Вводимо зайву перемінну W для затримки екрану
}//Кінець функції main()
2.32 Сума двох рядків
Програма Proga2_2.срр призначена для формування рядка-суми двох рядків, якщо подані два символьних рядка, які складаються тільки з цифр.
Вхідні дані: рядок STRING1 (тип char)
рядок STRING2 (тип char)
Вихідні дані: рядок STRING3 (тип char)
#include<iostream.h> //Підключаємо бібліотеки iostream.h,
#include<stdlib.h> //та math.h
void main() //Оголошуємо головну функцію main()
{
char STRING1[50]={0};//Оголошуємо символьну матрицю STRING1,
char STRING2[50]={0};//матрицю STRING2,
int i,N1,N2; //та змінні I,N1,N2
cout<<"Скільки елементі вбуде в вашому рядку 1? "; //Вводимо запит
cin>>N1; //Вводимо кількість елементів першого рядка
cout<<"Введіть рядок 1: "; //Даємо запит
for(i=0;i<N1;i++) //Задаємо цикл
cin>>STRING1[i]; //Вводимо цифри першого рядка
cout<<" Скільки елементі вбуде в вашому рядку 2? "; //Вводимо запит
cin>>N2; //Вводимо кількість елементів другого рядка
cout<<" Введіть рядок 2: ";//Даємо запит
for(i=0;i<N2;i++) //Задаємо цикл
cin>>STRING2[i]; //Вводимо цифри другого рядка
double long l1=atol(STRING1); //Змінній l1 присвоюємо функцію atol
//яка обертає рядок STRING1 на одне число типу double long
double long l2=atol(STRING2); //Змінній l2 присвоюємо функцію atol
double long l3=l1+l2; //Змінній l3 присвоюємо суму l1 та l2
cout<<"l3="<<l3<<"\n";//Виводимо відповідь
cout<<"\n"<<"Для виходу введіть EXIT:"<<"\n"; //Даємо запит
cin>>W; //Вводимо зайву перемінну W для затримки екрану
}//Кінець функції main()
2.33 Редагування тексту
Програма Proga33.срр призначена для редагування тексту так, щоб між словами був рівно один пробіл, а між реченнями рівно два
Вхідні дані: рядок символів S (тип char)
Вихідні дані: відредагований рядок S (тип Char)
Блок-схема до програми Proga33.срр представлена на рисунку 2.10
#include<conio.h> //Підключаємо бібліотеки conio.h
#include<stdio.h> //та stdio.h
void main() //оголошуємо головну функцію main()
{
char S[80],i; //оголошуємо символьний масив з 80 елементів та
// символьну перемінну i
printf("Введіть ваш рядок. В кінці поставте @:\n"); //Вводимо рядок,
gets(S); //який закінчується на @
i=0; //Задаємо початкове значення параметра i
while((S[i]!='@'))
{
if (S[i]=='.') //Задаємо умову знаходження крапки в рядку
{ //якщо крапка знайдена,
printf(". "); //виводимо крапу з двома пробілами
}
else printf("%c",S[i]); //інакше виводимо елемент на своєму місці
i+=1; //Збільшуємо лічильник на одиницю
}
printf("\n"); //Переводимо курсор на новий рядок
getch(); //Затримуємо екран
} //Кінець функції main()
Рисунок 2.10 Блок-схема алгоритму до програми Proga33.срр
2.34 Копіювання одного рядка в інший
Програма Proga4_4.срр призначена копіювання одного тексту в інший так, щоб літери “новий рядок” та “табуляція” перетворювалися у видимі послідовності літер \nта \t
Вхідні дані: рядок символів Str1 (тип char)
рядок символів Str2 (тип char)
Вихідні дані: новий рядок str3 (тип Char)
#include<conio.h> //Підключаємо бібліотеки conio.h,
#include<stdio.h> //stdio.h
#include<string.h> //та string.h
char func(char str3[180],char str4[180]) //Оголошуємо функцію func,
{ //яка по заданим двом рядкам
int i; char str5[180]; //копіює другий рядок в кінець
//першого та перетворює літери
strncat(str3,str4,80); //”новий рядок” та “табуляція”
printf("\n"); //у видимі послідовності літер
//\n та \t
i=0;
while(str3[i]!=EOF)
{
if (str3[i]=='\n')
printf("\n");
else if (str3[i]=='\t')
printf("\t");
else printf("%c",str3[i]);
i+=1;
}
return 0;
}
void main() //Оголошуємо головну функцію main()
{
char str1[180],str2[180] //Оголошуємо дві символьних матриці
printf("Введіть ваш перший рядок:\n"); //Даємо запит
gets(str1);//Вводимо перший рядок символів
printf("Введіть ваш другий рядок:\n"); //Даємо запит
gets(str2); //Вводимо другий рядок символів
func(str1,str2); //Викликаємо функцію func
printf("\n"); //Переводимо курсор на новий рядок
getch(); //Затримуємо екран
} //Кінець функції main()
Перелік посилань
1. Глушаков С.В.,Коваль А.В.,Смирнов С.В. Язык программирования С++. – Харьков: «Фолио», Ростов-на-Дону: «Феникс», 2001.
2. Керниган Б. Ричи Д. Язык программирования Си – М. Финансы и статистика, 1992. – 272 с.
3. Хэфилд Ричард, Кирби Лоуренс и др. Искусство программирования на Си. Фундаментальные алгоритмы, структуры данных и примеры приложений. Энциклопедия программистов «ДиаСофт». 2001. – 736 с.