Оглядові запитання
1. З чим проводяться маніпуляції порівняння з рядками та символами в всередині комп’ютера?
2. Як виводиться виявлення колів?
3. Який стандарт виконується для латиниці?
4. Що виконує функція strcmp?
5. Що визначає символ порівняння!=?
6. Що визначає символ порівняння ==?
7. Що визначає символ порівняння <=?
8. Що визначає символ порівняння >?
9. Що визначає вираз i++?
10. Що визначає вираз +=i?
11. Що визначає вираз i--?
12. Що визначає функція cout<<
Лабораторна робота № 24. Сортування масивів рядків
Мета:
Здобути навики використання середовища розробки мови C++, познайомитися з сортування масивів рядків, здобути навички написання програм.
Короткі теоретичні відомості до роботи.
Розглянемо програму сортування масиву рядків tL і tR по алфавіту за допомогою функцій strcmp і strcpy.
Зручно сортувати масиви показників. Задаємо масив рядків t і відповідний йому масив показників tР. Сортувати масив t, безпосередньо змінючи значення показників, неможливо, тому що імена показників на елементи-рядки за визначенням є константні показники, а для масиву показників цого обмеження немає.
|
|
//файл PART3\3_13.ccp
// сортування по алфавіту
#include <string.h> //функція обробки рядків
#include “c:\CPP\SUBPROG\\roll.h”
#include “c:\CPP\SUBPROG\\roll_txt.h”
typedef char STRING;
typedef char *STRING; //ввід псевдоніму для типу char і char *
main () { clrscr();
cout<<” ВХІДНІ МАСИВИ “<<end1;
STRING tL[6][10] = {“one”, “two”, “three”, “four ”};
cout<<”масив tL (латиниця:)”;
for (i=0; i<6; i++) cout<< tL[i]; cout<<end1;
STRING tR[6][10] = {“один”, “два”, “три”, “чотире ”};
cout<<”масив tR (кирилиця): ”;
for (i=0; i<6; i++) cout<< tR[i]; cout<<end1;
cout<<”\n ВІДСОРТОВАНІ МАСИВИ “<<end1;
for (i=0; i<5; i++) for (j=i+1; j<6; j++)
{ if (strcmp(tL[i], tL[j])>0)
{ STRING tt[10]; strcpy(tt, tL[j]);
strcpy(tL[j], tL[i]); strcpy(tL[i], tt); }; };
for (i=0; i<6; i++) cout<< tL[i]; cout<<end1;
for (i=0; i<5; i++) for (j=i+1; j<6; j++)
{ if (strcmp(tR[i]), (tR[j])>0)
{ STRING tt[10]; strcpy(tt, tR[j]);
strcpy(tR[j], tR[i]); strcpy(tL[i], tt); }; };
for (i=0; i<6; i++) cout<< tR[i]; cout<<end1;
pause(9);
cout<<”\n ВХІДНИЙ МАСИВ “<<end1;
STRING t[9][10] = {“one”, “two”, “three”, “four ”,
“шість”, “six”, “восім”, “сім”};
cout<<”масив t (змішаний): \n”;
for (i=0; i<9; i++) cout<< t[i]; cout<<end1;
STRING tP[9]; //масив показників
for (i=0; i<9; i++) tP[i]=t[i[;
cout<<”масив показників tP(змішаний): \n”;
for (i=0; i<9; i++) cout<<tP[i]; //вивід масива показників
cout<<end1 <<”\n ВІДСОРТОВАНИЙ МАСИВ” <<end1;
for (i=0; i<8; i++) { for (j=i+1; j<9; j++)
if (strcmp(tP[i]), (tP[j])>0)
{char *tt=tP[i]; tP[i]=tP[j];tP[j]=tt; }; };
cout<<”масив tP(змішаний): \n”;
for (m=0; m<9; m++) cout<< tP[m]; cout<<end1;
pause(0); return 0; }