- •Insert Project Into Workspace..
- •VisualComponentManager
- •Типи майстрів проектів
- •Void cLab_04 1Dlg::OnDel()
- •Void cLab 04 1Dlg::OnOptimum()
- •Int NumCars; //Количество автомобілів
- •Void cLab 04 1Dlg::OnOpen()
- •Void cLab_06Dlg::OnReplace(nmhdr* pNmhdr, lresult* pResult)
- •Робота №1 Програмування лінійних алгоритмів
- •1.2. Функції бібліотеки math.Lib
- •1.4. Індивідуальні завдання
- •Работа №2 Програмування алгоритмів, що розгалужуються
- •2.1. Логічні операції і операції порівняння
- •3.5. Приклад виконання роботи
- •4.3. Індивідуальні завдання
- •5.2. Операції над покажчиками
- •5.5. Індивідуальні завдання
- •Int strlen(st) – повертає довжину рядка st.
- •Int atoi(st) – перетворить рядок st в число цілого типа (int).
- •Return вираження;
- •8.2. Передача параметрів
- •8.3. Перевантаження функцій і покажчик на функцію
- •Hanr(n-1,s1,s3,s2);
- •Hanr(n-1,s3,s2,s1);
- •9.3. Індивідуальні завдання
- •Робота №10 Програмування з використанням файлів
- •10.1. Організація роботи з файлами
- •I або I ( десяткове, вісімкове або шістнадцятиричне ціле;
- •Void s_qs(tStudent st[], int n)
- •11.3. Індивідуальні завдання
- •Робота №15 Програмування з використанням двусвязанных списків
- •15.1. Черги на основі двусвязанных списків
- •Методика оцінювання робіт студентів
- •Литература
Int strlen(st) – повертає довжину рядка st.
char *strrev(st) – змінює порядок дотримання символів в рядку на протилежний.
сhar *strdup(st); – дублює рядок st.
сhar *strlwr(st) – конвертує символи рядка st до нижнього регістра.
сhar *strupr(st) – конвертує символи рядка st до верхнього регістра.
Int atoi(st) – перетворить рядок st в число цілого типа (int).
double atof(st) – перетворить рядок st в число дійсного типа.
char *itoa(а, st, base) – перетворить число цілого типа а в рядок st ( base – підстава системи числення).
char *gcvt(а, dec, st); – перетворить число дійсного типа а в рядок st. Значення dec вказує на число десяткових розрядів (не більше 18).
6.3. Приклад виконання роботи
Умова 1. Виділити і вивести на екран всі слова довільного рядка. Слова відділяються один від одного одним або декількома пропусками.
char st[100], sl[100];
int k=0, i;
gets(st);
strcat(st" ");
int n=strlen(st);
if (n<2) return 1;
sl[0]='\0';
for (i=0; i<n; i++)
if (st[i]!= ' ')
{
sl[k]=st[i];
sl[k+1]='\0';
k++;
}
else
{
if (strlen(sl) >0) puts(sl);
sl[0]='\0';
k=0;
}
Умова 2. Визначити, чи є рядок палиндромом, тобто чи читається вона зліва направо так само, як і справа наліво.
char st[80]="A roza upala na lapu Azora";
int i,j;
bool bl=true;
strlwr(st);
i=0; j=strlen(st)-1;
while (i<=j) {
while (st[i]==' ') i++;
while (st[j]==' ') j--;
if (st[i]!=st[j])
{
bl=false;
break;
}
i++; j--;
}
if (bl) cout << "Palindrom" << endl;
else cout << "Ne palindrom" << endl;
6.4. Індивідуальні завдання
1. Даний рядок, що складається з груп нулів і одиниць. Кожна група відділяється від іншої одним або декількома пропусками. Знайти кількість груп з п'ятьма символами.
2. Даний рядок, що складається з груп нулів і одиниць. Знайти і вивести на екран найкоротшу групу.
3. Даний рядок, що складається з груп нулів і одиниць. Підрахувати кількість символів в щонайдовшій групі.
4. Даний рядок, що складається з груп нулів і одиниць. Знайти і вивести на екран групи з парною кількістю символів.
5. Даний рядок, що складається з груп нулів і одиниць. Підрахувати кількість одиниць в групах з непарною кількістю символів.
6. Даний рядок, що складається з букв, цифр, ком, крапок, знаків «+» і «–». Виділити підрядок, який відповідає запису цілого числа.
7. Даний рядок символів, що складається з букв, цифр, ком, крапок, знаків «+» і «–». Виділити підрядок, який відповідає запису дійсного числа з фіксованою крапкою.
8. Даний рядок символів, що складається з букв, цифр, ком, крапок, знаків «+» і «–». Виділити підрядок, який відповідає запису дійсного числа з плаваючою крапкою.
9. Даний рядок символів, що складається з довільних десяткових цифр, розділених пропусками. Вивести на екран числа цього рядка в порядку зростання їх значень.
10. Даний рядок символів, що складається з довільних десяткових цифр, розділених пропусками. Вивести парні числа цього рядка.
11. Даний рядок символів, що складається з довільного тексту англійською мовою, слова розділені пропусками. Вивести на екран слова цього тексту в порядку, відповідному латинському алфавіту.
12. Даний рядок символів, що складається з довільного тексту, слова розділені пропусками. Вивести на екран порядковий номер слова, що накриває к-ю позицію (якщо на к-ю позицію потрапляє пропуск, то номер попереднього слова).
13. Даний рядок символів, що складається з довільного тексту, слова розділені пропусками. Розбити вихідний рядок на два підрядки, причому перша завдовжки до символів (якщо на к-ю позицію потрапляє слово, то його слід віднести до другого рядка).
14. Даний рядок символів, що складається з довільного тексту, слова розділені пропусками. Вивести на екран порядковий номер слова максимальної довжини і номер позиції в рядку, з яким воно починається.
15. Даний рядок символів, що складається з довільного тексту, слова розділені пропусками. Вивести на екран порядковий номер слова мінімальної довжини і кількість символів в цьому слові.
Лабораторная робота №7
Програмування з використанням Структур
7.1. Оголошення структур
Структура – це складений тип даних, в якому під одним ім'ям об'єднані дані різних типів. Окремі дані структури називаються полями. Оголошення структури здійснюється за допомогою ключового слова struct, за яким йде її ім'я і далі список елементів, ув'язнених у фігурні дужки:
struct ім'я
{
тип_элемента_1 имя_элемента_1;
тип_элемента_2 имя_элемента_2;
...
тип_элемента_n имя_элемента_n;
} ;
Правила роботи з полями структури ідентичні роботі із змінними відповідних типів. До полів структури можна звертатися через складене ім'я. Формат звернення:
имя_структуры.имя_поля
або
указатель_на_структуру–>имя_поля
7.2. Приклад виконання роботи
Умова. Створити масив структур, що містить інформацію про студентів: ФІО, номер групи, оцінки за останню сесію. Вивести інформацію про студентів гр. 610205 в порядку убування середнього балу.
#include <iostream.h>
#include <string.h>
int main ()
{
struct strc{
char fio[40];
char ngr[7];
int otc[4];
double sb;
} mstud[100];
int nst, i, j;
cout << "Vvedite kol-vo studentov" << endl;
cin >> nst;
for (i=0; i < nst; i++)
{
cout << "Vvedite FIO";
cin >> mstud[i].fio;
cout << "Vvedite nomer gr.";
cin >> mstud[i].ngr;
cout << "Vvedite 4 otcenki" << endl;
mstud[i].sb = 0;
for (j=0; j<4; j++)
{
cin >> mstud[i].otc[j];
mstud[i].sb += mstud[i].otc[j]/4.;
}
cout << endl;
}
strc stemp;
for (i=0; i < nst-1; i++)
for (j=i+1; j<nst; j++)
if (mstud[i].sb < mstud[j].sb
&& !strcmp(mstud[i].ngr,"610205")
&& !strcmp(mstud[j].ngr,"610205"))
{
stemp = mstud[i];
mstud[i]= mstud[j];
mstud[j]=stemp;
}
for (i=0; i < nst; i++)
if (!strcmp(mstud[i].ngr,"610205"))
cout << mstud[i].fio << " " << mstud[i].ngr << " "
<< mstud[i].sb << endl;
return 0;
}
7.3. Індивідуальні завдання
1. У магазині сформований список постійних клієнтів, який включає ФІО, домашню адресу покупця і розмір знижки, що надається. Видалити з цього списку записи, що все повторюються, перевіривши ФІО і домашню адресу покупця.
2. Список товарів, що є на складі, включає найменування товару, кількість одиниць товару, ціну одиниці і дату вступу товару на склад. Вивести в алфавітному порядку список товарів, що зберігаються більше місяця, вартість яких перевищує 100 000 р.
3. Для здобуття місця в гуртожитку формується список студентів, який включає ФІО студента, групу, середній бал, дохід на члена сім'ї. Гуртожиток в першу чергу надається тим, у кого дохід на члена сім'ї менше двох мінімальних зарплат, потім останнім в порядку зменшення середнього балу. Вивести список черговості надання місць в гуртожитку.
4. У довідковій автовокзалу зберігається розклад руху автобусів. Для кожного рейса вказані його номер, тип автобуса, пункт призначення, час відправлення і прибуття. Вивести інформацію про рейси, якими можна скористатися для прибуття в пункт призначення раніше заданого часу.
5. На міжміській АТС інформація про розмови містить дату розмови, код і назву міста, час розмови, тариф, номер телефону в цьому місті і номер телефону абонента. Вивести для заданого міста загальний час розмов з ним і суму.
6. Інформація про співробітників фірми включає ФІО, табельний номер, кількість відпрацьованого годинника за місяць, почасовою тариф. Робочий час понад 144 години вважається наднормовим і оплачується в подвійному розмірі. Вивести розмір заробітної плати кожного співробітника фірми за вирахуванням прибуткового податку, який складає 12 % від суми заробітку.
7. Інформація про учасників спортивних змагань містить найменування країни, назву команди, ФІО гравця, ігровий номер, вік, зростання і вагу. Вивести інформацію про наймолодшу команду.
8. Для книг, що зберігаються в бібліотеці, задаються реєстраційний номер книги, автор, назва, рік видання, видавництво, кількість сторінок. Вивести список книг з прізвищами авторів в алфавітному порядку, виданих після заданого року.
9. Різні цехи заводу випускають продукцію декількох найменувань. Відомості про випущену продукцію включають найменування, кількість, номер цеху. Для заданого цеху необхідно вивести кількість випущених виробів по кожному найменуванню.
10. Інформація про співробітників підприємства містить ФІО, номер відділу, посаду, дату початку роботи. Вивести список співробітників заданого відділу в порядку убування стажу.
11. Ведомость абітурієнтів, що склали вступні іспити в університет, містить ФІО., адреса, оцінки. Визначити кількість абітурієнтів, що проживають в м. Мінську і що склали іспити з середнім балом не нижче 4.5, вивести їх прізвища в алфавітному порядку.
12. У довідковій аеропорту зберігається розклад вильоту літаків на наступну добу. Для кожного рейса вказані номер рейса, тип літака, пункт призначення, час вильоту. Вивести всі номери рейсів, типів літаків і час вильоту в заданий пункт призначення в порядку зростання часу вильоту.
13. У адміністратора залізничних кас зберігається інформація про вільні місця в поїздах далекого дотримання на найближчий тиждень в наступному вигляді: дата виїзду, пункт призначення, час відправлення, число вільних місць. Оргкомітет міжнародної конференції звертається до адміністратора з проханням зарезервувати m місць до міста N на к-е число з часом відправлення поїзда не пізніші за t годинник вечора. Вивести час відправлення або повідомлення про неможливість виконати замовлення в повному об'ємі.
14. Ведомость абітурієнтів, що склали вступні іспити в університет, містить ФІО абітурієнта, оцінки. Визначити середній бал по університету і вивести список абітурієнтів, середній бал яких вище середнього балу по університету. Першими в списку повинні йти студенти, що склали всі іспити на 10.
15. У радіоательє зберігаються квитанції про здану в ремонт радіоапаратуру. Кожна квитанція містить наступну інформацію: найменування групи виробів (телевізори, радіоприймачі і т. п.), марку виробу, дату приймання в ремонт, стан готовності замовлення (виконаний, не виконаний). Вивести інформацію про стан замовлень на поточну добу для заданої групи виробів.
Робота №8
Програмування з використанням функцій
8.1. Оголошення функції
Функція – це послідовність операторів, оформлена таким чином, що її можна викликати по імені з будь-якого місця програми. Функція описується таким чином:
тип повертаного значення ім'я функції (список параметрів)
{
тіло функції
}
Перший рядок опису називається заголовком функції. Тип повертаного значення може бути будь-яким, окрім масиву або функції. Допустимо не повертати жодного значення (тип void).
У С++ не допускається вкладення функцій один в одного.
Вихід з функції здійснюється наступними способами:
1. Якщо немає необхідності повертати обчислене значення, то вихід здійснюється після досягнення закриваючої дужки або при виконанні оператора return.
2. Якщо необхідно повернути певне значення, то вихід здійснюється оператором
