Програмний продукт Pacific З Compiler
Локальна обчислювальна мережа (ЛВС) кафедри АВП служить для організації навчального процесу по 42 навчальних дисциплінах, у тому числі для виконання лабораторних і практичних занять, курсового і дипломного проектування, проведення ознайомлювальної практики. Програма Proga17. срр призначена для виводу матриці В (M;N), елементами якої є випадкові числа, рівномірно розташовані в інтервалі (-5;7… Читати ще >
Програмний продукт Pacific З Compiler (реферат, курсова, диплом, контрольна)
МІНІСТЕРСТВО ОСВІТИ ТА НАУКИ УКРАЇНИ ДОНБАСЬКА ДЕРЖАВНА МАШИНОБУДІВНА АКАДЕМІЯ КАФЕДРА АВТОМАТИЗАЦІЇ ВИРОБНИЧИХ ПРОЦЕСІВ Звіт про практику Краматорськ 2003
ЗМІСТ
1. Локальна обчислювальна мережа кафедри АВП
2. Індивідуальне завдання
2.1 Визначення суми рядка
2.2 Визначення добутку множників
2.3 Визначення добутку множників
2.4 Визначення добутку рядка
2.5 Визначення суми рядка
2.6 Виведення заданого рядка без «А» або «а»
2.7 Визначення суми добутків
2.8 Знаходження числа
2.9 Знаходження суми рядка
2.10 Виведення заданого рядка до першого знаку «
2.11 Виведення дня народження
2.12 Знаходження кількості слів «no»
2.13 Знаходження точки перетину двох прямих
2.14 Знаходження певних тризначних чисел
2.15 Знаходження певного тризначного числа
2.16 Вивід квадратної матриці М<20
2.17 Вивід матриці В (М;N)
2.18 Знаходження найбільшого з від'ємних чисел матриці
2.19 Знаходження найбільшого значення напруги в електромережі
2.20 Знаходження першого члену послідовності
2.21 Видалення пробілів з рядка
2.22 Знаходження кількості вказаних символів
2.23 Змінення матриці певним чином
2.24 Знаходження суми j-того рядка
2.25 Знаходження кількості цифр в числі та їх суми
2.26 Знаходження номера селища
2.27 Перевід числа до різних систем счислення
2.27.1 Заголовний модуль stdafx. cpp
2.27.2 Заголовний модуль stdafx. р
2.27.3 Заголовний модуль resource. h
2.27.4 Заголовний модуль Proga27_01Dlg.h
2.27.5 Заголовний модуль Proga27_01Dlg.cpp
2.27.6 Заголовний модуль Proga2701.h
2.27.7 Заголовний модуль Proga2701.cpp
2.28 Знаходження раціональної кількості предметів
2.29 Знаходження четвірок простих чисел
2.30 Обчислення числа Фібоначі
2.31 Видалення з рядку певних символів
2.32 Сума двох рядків
2.33 Редагування тексту
2.34 Копіювання одного рядка в інший Перелік посилань
1. Локальна обчислювальна мережа кафедри АВП
Локальна обчислювальна мережа (ЛВС) кафедри АВП служить для організації навчального процесу по 42 навчальних дисциплінах, у тому числі для виконання лабораторних і практичних занять, курсового і дипломного проектування, проведення ознайомлювальної практики.
ЛВС розгорнута в аудиторіях 2105, 2112 другого корпуса ДДМА та складається з файлового сервера, що виконує функції основного контролера домена, та 24 робочих станцій. Як середовище передачі сигналів використовується тонкий коаксіальний кабель з темпом передачі інформації 100 Мбіт/с по протоколу TCP/IP.
Апаратне забезпечення являє собою IBM-сумісні компьютери наступних конфігурацій.
Сервер — Атх-платформа на базі процесора Celeron 1100 Мгц, ОЗП 256 Мбайт, відеопам'ять 32 Мбайт, два жорстких диски 40 Гбайт зі швидкістю обертання шпинделя 7200 об/хв, привід CD-ROM 48x, один привід гнучких дисків, 15″ монітор SVGA-типу.
Робочі станції представлені наступними типами комп’ютерів.
Перший тип — Атх-платформа на базі процесора Celeron 1100 Мгц, ОЗП 256 Мбайт, відеопам'ять 32 Мбайт, один жорсткий диск 40 Гбайт зі швидкістю обертання шпинделя 7200 об/хв чи 20 Гбайт зі швидкістю обертання 5400 об/хв, 15″ монітор SVGA-типу.
Другий тип — Ат-платформа на базі процесора AMD Кб 266 Мгц, ОЗП 32 Мбайт, один жорсткий диск 2 Гбайт зі швидкістю обертання шпинделя 3600 об/хв, відеопам'ять 1 Мбайт, 14″ монітор SVGA-типу.
Для керування роботою користувачів у мережі використовуються операційні системи (ОС) Windows наступних типів. На сервері встановлена ОС Windows NT 4.0 Server, на робочих станціях — Windows NT 4.0 Workstation чи Windows 2000 Professional.
Керування робочим середовищем користувачів забезпечує адміністрація домена шляхом ведення відповідної системної політики. Користувачі домена розбиті на групи по курсам, кожен користувач має власний обліковий запис і робочий каталог для збереження особистої інформації обсягом не більш 10 Мбайт. База даних облікових користувачів нараховує більш 500 записів. Робочі каталоги зберігаються в розділі User жорсткого диска сервера, обсяг розділа 2 Гбайт. Доступ до робочого каталогу заблокований для всіх користувачів, за винятком його власника й адміністратора.
На кожній робочій станції встановлене наступне прикладне програмне забезпечення.
Microsoft Office 2000 — для підготовки текстових документів за допомогою текстового процесора Word.
Matlab — система інженерних і наукових розрахунків з можливістю візуального моделювання.
Electronic Workbench 5.12 — система моделювання електронних схем.
AutoCad 2000 — система автоматизації конструкторських робіт.
PCAD 2000 — система конструювання друкованих плат. Для виконання лабораторних робіт використовується версія PCAD 4.5.
Microsoft Visual Studio 6.0 — інтегроване середовище для швидкої розробки додатків на базі мов Visual C++ 6.0 і Visual Basic 6.0.
MathCAD — система автоматизації проектування науково-технічних задач.
Компас — система автоматизації підготовки керуючих програм для верстатів з числовим програмним керуванням (ЧПК);
Крім того, на окремих робочих станціях встановлені:
Rational Rose 2000 — засіб об'єктно-орієнтованого аналізу і проектування технічних, переважно програмних, систем на базі нотації UML (Unified Model Language — уніфікованої мови моделювання) з можливістю генерації вихідного коду мовою Visual Basic 6.0.
BPWin і Erwin — засоби, що дозволяють автоматизувати етапи розробки програмного забезпечення, інструменти CASE (Computer-Aided Software/System Engineering).
Visio 5 — двовимірна графічна САПР для підготовки науково-технічних документів — схем, алгоритмів, карт і т.п., сумісна з текстовим процесором Word.
PROMT 2000 — автоматичний переклад науково-технічних текстів з англійської, німецької й ін. мов, переважно по тематиці, зв’язаної з обчислювальною технікою і програмуванням.
Передбачається встановлювання пакета Microsoft Visual Studio .NET 7, призначеного для розробки мобільних і переносних продуктів за допомогою мов програмування С# (Си шарп) і Visual Basic .Net
Інформаційне забезпечення навчального процесу підтримується Web-сервером кафедри на базі програмного продукту IIS (Internet Information Server) фірми Microsoft. Для читання документів використовується броузер Internet Explorer 5.0. У розділі Home обсягом 8 Гбайт розташовується стартова сторінка, за допомогою якої можливий мережний доступ до документації по профілях спеціальності АВП. Є каталоги фірм-виробників апаратного забезпечення таких, як Intel, Analog Devices, Maxim, Siemens і ін. із загальним числом одиниць збереження понад 12 тисяч, база знань MSDN фірми Microsoft обсягом порядку 1,3 Гбайт, що містить кілька десятків річних комплектів журналів з обчислювальної техніки та програмування, окремі книги і довідкова документація по програмних продуктах фірми. Широко представлена науково-технічна тематика російською мовою — статті з журналів, книги, методичні і навчальні видання, у тому числі виконані викладачами кафедри. Організовано рубрики, присвячені нейронним мережам, Internet-програмуванню, програмуванню на мовах Си і Visual Basic і ін. перспективним напрямкам. Для публікації документів у Intranet-мережі кафедри встановлені пакети Adobe Reader (для документів у pdf-форматі), HomeSite 4.5 (у форматі гіпертексту). Net Studio 2000 (для графічного дизайну Web-сторінок).
Встановлене програмне забезпечення дає можливість проводити лабораторні заняття в режимі відеоконференції з використанням дошки на екрані дисплея. Крім того, проводиться підготовка до перекладу класів у режим дистанційного навчання, при якому контакт студента і викладача буде розділятися у просторі та часі, з веденням обліку використання машинного часу і проведенням тестування по окремих темах і в цілому по окремих дисциплінах кафедри АВП.
Для виконання програми ознайомлювальної практики студентами першого курсу на Web-сервері оприлюднена програма практики з варіантами індивідуальних завдань; виконання завдань передбачає самостійне вивчення основ програмування мовою Си++ з використанням програмного продукту Pacific З Compiler, що забезпечує генерацію машинного коду для мікроконтролерів серії MCS 51.
2 ІНДИВІДУАЛЬНЕ ЗАВДАННЯ
2.1 Визначення суми рядка Програма Proga1. срр призначена для знаходження суми рядка по заданим параметрам X та N:
Вхідні дані: параметр Х (тип double)
параметр N (тип int)
Вихідні дані: сума рядка S (тип double)
#include //Підключаємо бібліотеки iostream. h та
#include // math. h
int fact (int h, int f) //Оголошуємо функцию fact, яка по заданому
{ // параметру h та кінцевому значенню f int result=1; // знаходить факторіал цього числа
for (h=1;h==f;h++)
return result*=h;
}
void main () //Оголошуємо головну функцію main ()
{
int N, i, W; //Оголошуємо перемінні N,і, W цілого типу
double х, S; //та перемінні х та S типу double
cout<<" Введіть Х та N через ENTER:" <<" n"; //Виводимо запрос на екран
cout<<" x=";
cin>>x; //Вводимо Х
cout<<" N=";
cin>>N; //Вводимо N
S=0; //Обнулюємо початкове значення суми S
for (i=1;i<=N;i++) //Задаємо цикл для проходження значень
//паматра і від 1 до значення N
S=S+((pow (-1,(i+1))*pow (x, 2*i)/fact (i, N))); //Знаходимо S
cout<<" n" <<" Відповідь: S="<<" n" <<" t"; //Виводимо відповідь
cout<<" n" <<" Dlya vihoda vvedite EXIT:" <<" n"; //Даємо запит
cin>>W; //Вводимо зайву перемінну W для затримки екрану
} //Кінець функції main ()
2.2 Визначення добутку множників Програма Proga2. срр призначена для знаходження добутку перших N множників l/2*¾*5/6*… ., якщо задане натуральне число N
Вхідні дані: параметр N (тип int)
Вихідні дані: добуток множників P (тип double)
#include //Підключаємо бібліотеку iostream. h
void main () //Оголошуємо головну функцію main ()
{
int N, W; //Оголошуємо перемінні N та W цілого типу
double i, P=1; //та перемінні і та Р типу double,
//добутку Р задаємо початкове значення 1
cout<<" Введіть N:" <<" n"; //Даємо запрос на введення числа N
r:; //Ставимо мітку r
cout<<" N=";
cin>>N; //Вводимо N
if (N==0) //Задаємо умову: при N=0 програма
{ //виводить помилку та пропонує ввести
cout<<" Error! Введіть інше число" <<" n"; //інше значення N,
goto r; //і відбувається перехід до мітки r
}
else if (N==1) //при N=1 програма видає відповідь 0.5,
{
cout<<" P=0.5″ <<" n"; //тому що перший член послідовності=½
}
else //Якщо N не дорівнює ні 0, ні 1,
{
i=2; //задаємо значення параметра і=2
do
{
Р*=(((2*i)-1)/i); //Задаємо розрахункову формулу
i+=2; //знаходження Р та зміну параметра і на 2
}
while (i≠(2*N)); //Програма буде виконуватися доки і не
//стане дорівнювати значенню 2*N.
cout<<" P="<
<" n"; //Після цього виведеться відповідь
}
cout<<" n" <<" Для виходу введіть EXIT:" <<" n"; //Даємо запит
cin>>W; //Вводимо зайву перемінну W для затримки екрану
} //Кінець функції main ()
2.3 Визначення добутку множників Програма Proga3. срр призначена для знаходження добутку суми одного рядка на добуток іншого, якщо задане натуральне число N
Вхідні дані: параметр N (тип int)
Вихідні дані: добуток множників S (тип double)
#include //Підключаємо бібліотеки iostream. h
#include //та math. h
void main () //Оголошуємо головну функцію main ()
{
int N, k, m, W; //Оголошуємо перемінні N, k, m, W цілого типу
double S1, P1,S; //та перемінні S1, P1 та S типу double
cout<<" Введіть N:" <<" n" <<" N="; //Даємо запрос на введення числа N
cin>>N; //Вводимо N
S1=0; //Обнулюємо початкове значення суми S1
for (k=1;k<=N;k++) //Задаємо цикл для проходження значень
{ //параметра k від 1 до значення N
S1+=pow (-1,k+1); //Знаходимо S1
}
N=k; //Перемінній N присвоюємо значення перемінної k
P1=1; //Добутку P1 присвоюємо початкове значення 1
for (m=1;m<2*k;m++) // Задаємо цикл для проходження значень
// параметра m від 1 до значення 2*k
P1=P1*cos ((m+1)/2*k); //Знаходимо Р1
S=S1*P1; //Перемінній S присвоюємо добуток перемінних S1 та P1
cout<<" Відповідь: S="<<" n"; //Виводимо відповідь
cout<<" Для виходу введіть EXIT:" <<" n"; //Даємо запит
cin>>W; //Вводимо зайву перемінну W для затримки екрану
} //Кінець функції main ()
2.4 Визначення добутку рядка Програма Proga4. срр призначена для знаходження добутку рядка
,
якщо задане натуральне число N
Вхідні дані: параметр N (тип int)
Вихідні дані: добуток рядка P (тип double)
#include //Підключаємо бібліотеки iostream. h
#include //та math. h
void main () //Оголошуємо головну функцію main ()
{
int N, i, W; //Оголошуємо перемінні N,і, W цілого типу
double P; //та перемінну P типу double
cout<<" Введіть N:" <<" n"; //Даємо запрос на введення числа N
cout<<" N=";
cin>>N; //Вводимо N
P=1; //Добутку P присвоюємо початкове значення 1
for (i=1;i<=N;i++) // Задаємо цикл для проходження значень
//параметра і від 1 до значення N
P=P*(1+1/sqrt (sqrt (i))); //Знаходимо Р
cout<<" Відповідь: P=" <
<" n"; //Виводимо відповідь
cout<<" Для виходу введіть EXIT:" <<" n"; //Даємо запит
cin>>W; //Вводимо зайву перемінну W для затримки екрану
} //Кінець функції main ()
2.5 Визначення суми рядка Програма Proga5. срр призначена для знаходження суми рядка
,
где, якщо задане натуральне число N
Вхідні дані: параметр N (тип int)
Вихідні дані: сума рядка S (тип double)
Блок-схема до програми Proga5. срр представлена на рисунку 2.1
#include //Підключаємо бібліотеки iostream. h
#include //та math. h
void main () //Оголошуємо головну функцію main ()
{
int N, i, a, d, W; //Оголошуємо перемінні N,і, а, d, W цілого типу
double S; //та перемінну S типу double
cout<<" Введіть N:" <<" n" <<" N="; //Даємо запрос на введення числа N
cin>>N; //Вводимо N
S=0; //Обнулюємо початкове значення суми S
for (i=1;i<=N;i++) // Задаємо цикл для проходження значень
{ // параметра і від 1 до значення N
d=i%3; //d присвоюємо залишкок від ділення перемінної на 3
if (d==0) a=i/3; //При умові d=0 перемінній «а» присвоюємо і/3
else a=i/(i-3); //Інакше — паремінній, а присвоюємо і/(і-3)
S+=a*a; //В кінці всього циклу до суми S додаємо (а*а)
}
cout<<" Відповідь S="<<" n"; //Виводимо відповідь
cout<<" n" <<" Для виходу введіть EXIT:" <<" n"; //Даємо запит
cin>>W; //Вводимо зайву перемінну W для затримки екрану
} //Кінець функції main ()
Ні Так Рисунок 2.1 Блок-схема алгоритму до програми Proga5. срр
2.6 Виведення заданого рядка без «А» або «а»
Програма Proga6. срр призначена для виведення заданого рядка, який закінчується «@», без літер «а» або «А»
Вхідні дані: символьний масив STRING (тип char)
Вихідні дані: заданий рядок без літер «а» або «А»
Блок-схема до програми Proga6. срр представлена на рисунку 2.2
#include //Підключаємо бібліотеки iostream. h
#include //та math. h
void main () //Оголошуємо головну функцію main ()
{
int W, N; //Оголошуємо перемінні W, N цілого типу,
char STRING[100]={0}; //масив STRING
char STRING1[100]={0}; //та STRING1 символьного типу,
char i; //перемінну і символьного типу
cout<<" Введіть ваш рядок n"; // Даємо запрос на введення рядка
cout<<" В кінці введіть @:"; //в кінці рядка поставимо «@»
cin>>STRING; //Вводимо рядок
if (STRING[0]=='@') //Умова: якщо на початку рядка стоїть «@»,
{
cout<<" Цей рядок не має символів" <<" n"; //програма виводить
goto t; //повідомлення і починає працювати після мітки «t»
}
N=0; //Перемінній N присвоюємо значення 0
for (i=0;STRING[i]+='';i++) //Задаємо цикл для проходження значень
{ //параметра і від 0 до символа кінця рядку
if (STRING[i]≠'@') //Умова: якщо і-ий елемент масива="@"
{
STRING1[i]=STRING[i]; //Нічого не відбувається
N=N+1; //Перемінній N присвоюємо її значення додаючи 1
}
else goto p; //В іншому разі - програма виходить з циклу
}
p:;
cout<<" n"; //Переводимо курсор на наступний рядок
cout<<" Відповідь: «; //Виводимо оголошення про відповідь
for (i=0;i<=N-1;i++) // Задаємо цикл для проходження значень
(STRING1[i]=='a')) //Якщо елемент
cout<<" «; //масива ="А» або «а», пропускаємо його,
else cout<
cout<<" n"; //Переводимо курсор на наступний рядок
t:; //Мітка t
cout<<" n" <<" Для виходу введіть EXIT:" <<" n"; //Даємо запит
cin>>W; //Вводимо зайву перемінну W для затримки екрану
} //Кінець функції main ()
Ні Так
Так Ні
Ні Так Рисунок 2.2 Блок-схема алгоритму до програми Proga6. срр
2.7 Визначення суми добутків Програма Proga7. срр призначена для знаходження добутку суми добутків
,
якщо задане натуральне число N
Вхідні дані: параметр N (тип int)
Вихідні дані: сума добутків рядка S (тип double)
#include //Підключаємо бібліотеки iostream. h
#include //та math. h
int fact (int h, int f) //Оголошуємо функцию fact, яка по заданому
{ // параметру h та кінцевому значенню f
// знаходить факторіал цього числа
int result=1;
for (h=1;h==f;h++)
result*=h;
return result*=h;
}
void main () //Оголошуємо головну функцію main ()
{
int i, j, N, W; //Оголошуємо перемінні i, j, N, W цілого типу
double S, S1, P; //та перемінні х та S типу double
cout<<" Введіть N:" <<" n" <<" N="; //Даємо запрос на введення числа N
cin>>N; //Вводимо N
S1=0; //Обнулюємо початкове значення суми S1
P=1; //Добутку P присвоюємо початкове значення 1
for (i=1;i<=N;i++) // Задаємо цикл для проходження значень
{ //параметра і від 1 до N, кроком 1
for (j=1;j<=i;j++) // Задаємо цикл для проходження значень
{ //параметра j від 1 до i, кроком 1
P=fact (j, i)/fact (i, N); //Знаходимо значення Р
S1+=P; //До значення перемінної S1 додаємо значення Р
} //Кінець циклу
}
S=S1; //Перемінній S присвоюємо кінцеве значення перемінної S1
cout<<" Відповідь: S="<<" n"; //Виводимо відповідь
cout<<" Для виходу введіть EXIT:" <<" n"; //Даємо запит
cin>>W; //Вводимо зайву перемінну W для затримки екрану
} //Кінець функції main ()
2.8 Знаходження числа Програма Proga8. срр призначена для знаходження такого числа аi, що |аi — ai-1 |< е, якщо послідовність задана по правилу аi = 1 / і, та дано число 0 < е < 0.1 типу double
Вхідні дані: параметр е (тип double)
Вихідні дані: сума рядка S (тип double)
#include //Підключаємо бібліотеку iostream. h
void main () //Оголошуємо головну функцію main ()
{
int i; //Оголошуємо перемінну і цілого типу
double e, W; //та перемінні e, W типу double,
double r[100]={0}; //масив r типу double
cout<<" Введіть 0<<" n"; //Даємо запрос на введення числа «e»
cin>>e; //Вводимо «e»
for (i=0;i<=100;i++) //Задаємо цикл для проходження значень
{ //параметра i від 0 до 100, кроком 1
r[i]=(1/(i+1)); //і-й елемент масива =(1/і+1)
if ((r[i]-r[i-1])<=e) //Умова: е, яке більше або =(r[i]-r[i-1])
goto p; // програма виходить з циклу по мітці «р»
} //Кінець циклу
p:; //Мітка «р:»
cout<<�"Відповідь:е="<<<" n"; //Виводимо відповідь
cout<<" n" <<" Для виходу введіть EXIT:" <<" n"; //Даємо запит
cin>>W; //Вводимо зайву перемінну W для затримки екрану
} //Кінець функції main ()
2.9 Знаходження суми рядка Програма Proga9. срр призначена для знаходження суми рядка якщо задане натуральне число N та М (N>M)
Вхідні дані: параметр М (тип int) параметр N (тип int)
Вихідні дані: сума рядка S (тип double)
#include //Підключаємо бібліотеки iostream. h
#include //та math. h
int fact (int i, int f) //Оголошуємо функцию fact, яка по заданому
{ // параметру i та кінцевому значенню f
// знаходить факторіал цього числа
int result=1;
for (i=1;i<=f;i++)
result*=i;
return result;
}
void main () //Оголошуємо головну функцію main ()
{
int N, M, W; //Оголошуємо перемінну і цілого типу
double S; //та перемінну S типу double
cout<<" Введіть N i M; (N>M)" <<" n" ;//Даємо запрос на введення чисел
//N та M при умові (N>M)
p: //Мітка р:
cout<<" N="; //Запрос на введення N
cin>>N; //Вводимо N
cout<<" M="; //Запрос на введення М
cin>>M; //Вводимо М
if (M>N) //При умові М>N
{
cout<<" ERROR: Введіть N>M" <<" n" ;//буде виведено повідомлення
goto p; //Перехід до мітки р:
}
S=0; //Обнулюємо початкове значення суми S
for (M;M<=N;M++) //Задаємо цикл для проходження значень
//параметра M від свого значення до N, кроком 1
S+=(M*M*log (fact (M, N))); //Знаходимо суму
cout<<" Відповідь: S="<<" n"; //Ввиводимо відповідь
cout<<" n" <<" Для виходу введіть EXIT:" <<" n"; //Даємо запит
cin>>W; //Вводимо зайву перемінну W для затримки екрану
} //Кінець функції main ()
2.10 Виведення заданого рядка до першого знаку «
Програма Proga10. срр призначена для виведення заданого рядка, який закінчується «@», до першого знаку «:»
Вхідні дані: символьний масив STRING (тип char)
Вихідні дані: заданий рядок до першого знаку «:»
#include //Підключаємо бібліотеки iostream. h
#include //та math. h
void main () //Оголошуємо головну функцію main ()
{
int W, N; //Оголошуємо перемінні W, N цілого типу,
char STRING[100]={0}; //масив STRING
char STRING1[100]={0}; //та STRING1 символьного типу,
char i; //перемінну і символьного типу
cout<<" Введіть ваш рядок n"; //Даємо запрос на введення рядка
cout<<" В кінці введіть @:"; //в кінці рядка поставимо «@»
cin>>STRING; //Вводимо рядок
if ((STRING[0]=='@')||(STRING[0]==':')) //Умова: якщо на початку
{ // рядка стоїть «@», або «:», програма
cout<<" Цей рядок не містить символів" <<" n"; //виводить goto t; //повідомлення і починає працювати після мітки «t»
}
N=0; //Перемінній N присвоюємо значення 0
for (i=0;STRING[i]+='';i++) //Задаємо цикл для проходження значень
{ //параметра і від 0 до символа кінця рядку
if (STRING[i]≠'@') //Умова: якщо і-ий елемент масива="@"
{
STRING1[i]=STRING[i]; //Нічого не відбувається
N=N+1; //Перемінній N присвоюємо її значення додаючи 1
}
else goto p; //В іншому разі - програма виходить з циклу
}
p:;//Мітка р:
cout<<" n" ;//Переводимо курсор на наступний рядок
cout<<" Відповідь: «;//Ввиводимо оголошення про відповідь
for (i=0;i<=N-1;i++) // Задаємо цикл для проходження значень
{ //параметра і від 0 до символа кінця рядку
if (STRING1[i]≠':')//Умова: якщо і-ий елемент масива не=":"
cout<
else goto t; //в іншому випадку програма виходить з циклу
}
cout<<" n"; //Переводимо курсор на наступний рядок
t:; //Мітка t:
cout<<" n" <<" Для виходу введіть EXIT:" <<" n"; //Даємо запит
cin>>W; //Вводимо зайву перемінну W для затримки екрану
} //Кінець функції main ()
2.11 Виведення дня народження Програма Proga11. срр призначена для розрахунку дуже щасливого, щасливого або звичайного дня народження по введеному року, місяцю та дню народження користувача Вхідні дані: масиви цілих чисел GODROJD, MASROJD, DENROJD
параметри Sgod, Smes, Sden (тип int)
Вихідні дані: дуже щасливий, просто щасливий або звичайний день народження користувача
#include> //Підключаємо бібліотеки iostream. h
#include //та math. h
main () //Оголошуємо головну функцію main ()
{
int G, M, D, i, j, k, W; //Оголошуємо перемінні G, M, D, i, j, k, W,
int Sgod, Smes, Sden; //Sgod, Smes, Sden цілого типу
int GODROJD [4]; //масив GODROJD,
int MESROJD [2]; //масив MESROJD,
int DENROJD [2]; //масив DENROJD цілого типу
p:; //мітка Р:
cout<<" Введіть ваш рік народження через ENTER:" <<" n"; //запрос
for (i=0;i<=3;i++) //Задаємо цикл для проходження значень
{ //параметра і від 0 до 3
cout<<" Рік:" ;
cin>>GODROJD[i]; //Вводимо кожен раз по одній цифрі року народж.
}
//Умова: якщо буде введений 2004 рік і більше,
if ((GODROJD[0]>=2)&&(GODROJD[1]>=0)&&(GODROJD[2]>=0)&&(GODROJD[3]>=4))
{
cout<<" Ми ще не дожили до цього часу!" <<" n"; //програма
goto p; //виведе повідомлення і перейде до мітки р:
}
r:; //мітка r:
cout<<" Введіть номер вашого місяця народження через ENTER:" <<" n" ;
for (j=0;j<=1;j++) //Задаємо цикл для проходження значень
{ //параметра і від 0 до 1
cout<<" Місяць:" ;
cin>>MESROJD[j]; //Вводимо кожен раз по одній цифрі місяця народж.
}
//Умова: якщо буде введений 13 місяць і більше
if ((MESROJD[0]>=1)&&(MESROJD[1]>=3))
{
cout<<" В 1 році 12 місяців. Спробуйте ще раз." <<" n" ;//програма
goto r; //виведе повідомлення і перейде до мітки r:
}
s:; //мітка s:
cout<<" Введіть номер вашого дня народження через ENTER:" <<" n" ;
for (k=0;k<=1;k++) //Задаємо цикл для проходження значень
{ //параметра і від 0 до 1
cout<<" День:" ;
cin>>DENROJD[k]; //Вводимо кожен раз по одній цифрі дня народж.
}
//Умова: якщо буде введений 32 день місяця і більше
if ((DENROJD[0]>=3)&&(DENROJD[1]>=2))
{
cout<<" В 1 місяці 31 або 30 днів. Спробуйте ще раз." <<" n" ;
goto s; //програма виведе повідомлення і перейде до мітки s:
}
Sgod=0; //Обнуляємо значення перемінної Sgod
for (i=0;i<=3;i++) //Задаємо цикл для проходження значень
//параметра і від 0 до 3
Sgod+=GODROJD[i]; //До значення перемінної Sgod додаємо значення
//і-го елементу масива GODROJD
Smes=0; //Обнуляємо значення перемінної Smes
for (j=0;j<=1;j++) //Задаємо цикл для проходження значень
//параметра і від 0 до 1
Smes+=MESROJD[j]; //До значення перемінної Smes додаємо значення
//і-го елементу масива MESROJD
Sden=0; //Обнуляємо значення перемінної Sden
for (k=0;k<=1;k++) //Задаємо цикл для проходження значень
//параметра і від 0 до 1
Sden+=DENROJD[k]; //До значення перемінної Sden додаємо значення
//і-го елементу масива DENROJD
G=Sgod%7;//перемінній G присвоюємо залишок від ділення на 7
//перемінної Sgod
M=Smes%7;//перемінній M присвоюємо залишок від ділення на 7
//перемінної Smes
D=Sden%7;//перемінній D присвоюємо залишок від ділення на 7
//перемінної Sden
if ((G==M)&&(M==D)&&(G==D)) //Умова: якщо значення змінної G дорівнює //значенню змінної М, значення змінної М дорівнює значенню змінної D //та значення змінної G дорівнює значенню змінної D, то програма //виведе:
cout<<" Ваш день народження дуже щасливий" <<" n" ;
else if ((G==M)||(M==D)||(G==D))//Якщо співпадають тільки будь-які
//дві змінні, то програма виведе:
cout<<" Ваш день народження просто щасливий" <<" n" ;
//Якщо співпадань не має, то програма виведе:
else cout<<" Ваш день народження звичайний" <<" n
cout<<" Для виходу введіть EXIT:" <<" n" ;//Даємо запрос
cin>>W; //Вводимо зайву перемінну W для затримки екрану
return 0; //Функція вертає 0
} //Кінець функції main ()
2.12 Знаходження кількості слів «no»
Програма Proga12. срр призначена для знаходження кількості слів «no», якщо слова у введеному тексті розділяються пробілами Вхідні дані: параметр і (символьного типу) Вихідні дані: кількість kol (цілого типу) Блок-схема до програми Proga12. срр представлена на рисунку 2.3
#include //Підключаємо бібліотеки stdio. h
#include //та conio. h
oid main () //Оголошуємо головну функцію main ()
{
int kol;//Оголошуємо перемінну kol цілого типу,
char i; //та перемінну і символьного типу
//Вводимо рядок в кінці якого просимо поставити @
puts («Введіть ваш рядок. В кінці поставте @: «);
kol=0; //Початкове значення параметра кількості дорівнює 0
i=0; //Задаємо початкове значення параметра і
while ((i=getchar ())≠'@')//Читаємо рядок доки не зустрінеться символ @
{
if ((i=='n')&&(i+1=='o')) //Умова знаходження слова «no»
kol=kol+1; //Якщо умова TRUE, то кількість
//слів збільшуємо на одиницю
i+=1; //Збільшуємо лічильник на одиницю
}
printf («Відповідь: %d n», kol); //Виводимо відповідь
getch (); //Утримуємо екран
} //Кінець функції main ()
Ні Так Рисунок 2.3 Блок-схема алгоритму до програми Proga12. срр
2.13 Знаходження точки перетину двох прямих Програма Proga13. срр призначена для знаходження взаємного розташування двох прямих A1*x+B1*y=C1 та A*x+B*y=C, якщо задані числа A1, B1,C1,A, B, C. Якщо прямі перетинаються, то вивести на єкран координати точки перетину.
Вхідні дані: перемінні A1, B1,C1,A, B, C, x, y, W; (тип float)
Вихідні дані: координати точки перетину х, у (тип float)
Блок-схема до програми Proga13. срр представлена на рисунку 2.4
#include //Підключаємо бібліотеки iostream. h
#include //та math. h
void main () //Оголошуємо головну функцію main ()
{
float A1, B1,C1,A, B, C, x, y, W;//оголошуємо перемінні
// A1, B1,C1,A, B, C, x, y, W типу float
cout<<" Введіть A1 «<<» =";
cin>>A1; //Вводимо значення перемінної А1
cout<<" Введіть B1 «<<» =";
cin>>B1; //Вводимо значення перемінної В1
cout<<" Введіть C1 «<<» =";
cin>>C1; //Вводимо значення перемінної С1
cout<<" Введіть A «<<» =";
cin>>A; //Вводимо значення перемінної А
cout<<" Введіть B «<<» =";
cin>>B; //Вводимо значення перемінної В
cout<<" Введіть C «<<» =";
cin>>C; //Вводимо значення перемінної С
if ((A1==A)&&(B1==B)) //Умова: якщо значення перемінної А1=А та
//значення перемінної В1=В
cout<<" Прямі паралельні" <<" n" ;//Виводимо, що прямі паралельні
else //Инакше
{
x=((C1-B1)/((A1*C)/(A*C-A*B1+A1*B)))/A1;//Знаходимо х та у
y=((A1*C)/(A*C-A*B1+A1*B)); //по відповідних формулах
//Ввиводимо координати точти перетину двох заданих прямих
cout<<" Прямі перетинаються в точці S («<<» ;" <<")" <<" n" ;
}
cout<<" n" <<" Для виходу введіть EXIT:" <<" n"; //Даємо запит
cin>>W; //Вводимо зайву перемінну W для затримки екрану
} //Кінець функції main ()
Ні Так Рисунок 2.4 Блок-схема алгоритму до програми Proga13. срр
2.14 Знаходження певних тризначних чисел Програма Proga14. срр призначена для знаходження всіх тризначних чисел які можна представити різницею між квадратом числа, яке утворюється першими двома цифрами, та квадратом третьої цифри Вхідні дані: всі тризначні числа Вихідні дані: певні тризначні числа Блок-схема до програми Proga14. срр представлена на рисунку 2.5
#include //Підключаємо бібліотеки iostream. h
#include //та math. h
void main () //оголошуємо головну функцію main ()
{
int W, i=100,a=0,b=0; //Оголошуємо перемінні W, I, a, b цілого типу //Перемінній «і» присвоюємо початкове значення 100, перемінним
//"а" та «b» — 0
cout<<" Ось ваші числа:" <<" n"; //Виводимо повідомлення на екран
for (i=100;i<1000;i++) //Задаємо цикл для проходження значень
{//параметра і від 100 до 999 кроком 1
a=(i/10)*(i/10); //Знаходимо квадрати перших двох цифр
// від 100 до 999
b=(i%10)*(i%10); //Знаходимо квадрати залишків від
// ділення на 10 чисел від 100 до 999
if (((a-b)>=100)&&((a-b)<1000))//Умова: отримані числа повинні бути
//тризначними
cout<<" n"; //Виводимо ці числа на екран
}
cout<<" Для виходу введіть EXIT:" <<" n;//Даємо запит
cin>>W; //Вводимо зайву перемінну W для затримки екрану
} //Кінець функції main ()
Ні Так Рисунок 2.5 Блок-схема алгоритму до програми Proga14. срр
2.15 Знаходження певного тризначного числа Програма Proga15. срр призначена для знаходження елемента масива, значення якого найбільш наближене до якогось цілого числа Вхідні дані: масиви чисел В, С, С1 (тип int)
параметр М (тип int)
Вихідні дані: певний елемент масива В
#include //Підключаємо бібліотеку iostream. h
void main () //оголошуємо головну функцію main ()
{
int N, W, i, M, amin; //Оголошуємо перемінні N, W, i, M, amin цілого типу
int B[100]; //Оголошуємо массив В зі 101 елементу типу int
int C[100]; //Оголошуємо массив С зі 101 елементу типу int
int C1[100]; //Оголошуємо массив С1 зі 101 елементу типу int
cout<<" Скількі елементі в буде у вашому масиві: «; //Робимо запит
cin>>N; //Вводимо кількість елементів масиву
cout<<" Введіть елементи вашого масиву через ENTER: n" ;
for (i=0;i
cin>>B[i]; //масива В
cout<<" Введіть ваше число: «;
cin>>M; //Вводимо довільне число М
for (i=0;i
C[i]=(B[i]-M); //Елементам масива С присвоюємо елементи масива
// В мінус значення числа М
cout<<" n"; //Переводимо курсор на новий рядок
for (i=0;i
{ //параметра і від 0 до N кроком 1
if (C[i]<0) C1[i]=C[i]*(-1); //Умова: якщо отримані елементи
//<0, то домножаємо їх на (-1)
else C1[i]=C[i]; //Инакше, залишаємо без змін
}
cout<<" n"; //Переводимо курсор на новий рядок
amin=C1[0]; //Переменній amin присвоюємо значення нульового
// елемента масива С1
for (i=1;i
{/параметра і від 1 до N кроком 1
if (C1[i]
amin=C1[i]; //знаходимо мінімальний елемент масива
}
cout<<" Елемент масива="<<(M-amin)<<" n"; //Виводимо відповідь
cout<<" n" <<" Для виходу введіть EXIT:" <<" n"; //Даємо запит
cin>>W; //Вводимо зайву перемінну W для затримки екрану
} //Кінець функції main ()
2.16 Вивід квадратної матриці М<20
Програма Proga16. срр призначена для виводу матриці розмірності M<20 виду Вхідні дані: параметр n (тип int)
Вихідні дані: матриця заданої розмірності
#include //Підключаємо бібліотеку iostream. h
void main () //оголошуємо головну функцію main ()
{
int i, j, n, s, k, h, m;//Оголошуємо перемінні i, j, n, s, k, h, m цілого типу
double A[100][100]={{0},{0}};//Оголошуємо масиви, А та В
double B[100][100]={{0},{0}};//типу double
cout<<" Введіть розмірність вашого масива (<20):" ;//Робимо запит
cin>>n; //Вводимо розмірність квадратної матриці А
s=0;//Перемінній s присвоюємо початкове значення — 0
k=2; //Перемінній k присвоюємо початкове значення — 2
for (i=0;i
{ //параметра і від 0 до n кроком 1
s+=1; //До значення перемінної s додаємо одиницю
for (j=0;j
{ //параметра j від 0 до n кроком 1
if (i==j) //Умова: якщо значення перемінної і дорівнює j,
{
A[i][j]=1; //заданому елементу масива, А присвоюємо значення 1
for (m=1,h=2;m
A[i+m][j]=h;//Заданому елементу масива, А присвоюємо значення h
}
else //В іншому випадку
{
A[i][0]=s; //Заданому елементу масива, А присвоюємо значення s
}
}
cout<<'n'; //Переводимо курсор на новий рядок
for (i=0;i<85;i++) //Задаємо цикл для проходження значень
{ //параметра і від 0 до 85 кроком 1
if (A[i]<0) //Умова: якщо елемент матриці А менше 0,
{ if (A[i]
} //перемінній min присвоюємо значення і-го елемента матриці А
cout<<" n" <<" max="<<" n"; //Виводимо відповідь
cout<<" n" <<" Для виходу введіть EXIT:" <<" n"; //Даємо запит
cin>>W; //Вводимо зайву перемінну W для затримки екрану
} //Кінець функції main ()
2.19 Знаходження найбільшого значення напруги в електромережі
Програма Proga19. срр призначена для знаходження найбільшого значення напруги в електромережі в інтервалі (20,6)годин та часу, якщо протягом доби кожну годину були проведені 24 заміра напруги Вхідні дані: масив чисел, А (тип int)
Вихідні дані: параметр mахМ (тип int)
#include //Підключаємо бібліотеки iostream. h,
#include //math.h та
#include //stdlib.h
void main () //оголошуємо головну функцію main ()
{
int maxN, i, maxM, N, M, W; //Оголошуємо перемінні maxN, i, maxM, N, M, W
int A[23]={0}; // типу int, та масив цілих чисел А
for (i=0;i<=23;i++) //Заповнюємо масив, А випадковими числами
A[i]=(rand ()%450)-200; //в інтервалі (200;250)
maxN=200; //Переміннії maxN присвоюємо початкове значення 200
for (i=0;i<6;i++) //Задаємо цикл
if (A[i]>=maxN) //Умова: якщо елемент масива, А > або = maxN,
{
maxN=A[i]; //перемінній maxN присвоюємо значення і-го елементу А
N=(i+1); //Перемінній N присвоюємо значення (і+1)
}
for (i=19;i<24;i++) //Задаємо цикл
if (A[i]>=maxM) //Умова: якщо елемент масива, А > або = maxМ,
{
maxM=A[i]; //перемінній maxМ присвоюємо значення і-го елементу А
M=(i+1); //Перемінній М присвоюємо значення (і+1)
}
if (maxN>=maxM)//Умова: якщо значення maxN > значення maxN, виводимо
cout<<" Напруга="<<" вольт о «<<» годині ранку" <<" n" ;
else cout<<" Напруга="<<" вольт о" <<" годині вечора" <<" n" ;
cout<<" n" <<" Для виходу введіть EXIT:" <<" n"; //Даємо запит
cin>>W; //Вводимо зайву перемінну W для затримки екрану
} //Кінець функції main ()
2.20 Знаходження першого члену послідовності
Програма Proga20. срр призначена для знаходження першого члену послідовності, n = 1, 2, …, який не належить відрізку [А, В], якщо задані числа А<0 та B>0 типу double
Вхідні дані: параметри, А та В (тип double)
Вихідні дані: параметр і (тип int)
#include //Підключаємо бібліотеки iostream. h
#include //та math. h
void main () //оголошуємо головну функцію main ()
{
int N=100,i; //Оголошуємо перемінні N=100,і цілого типу
double S, a, A, B, W; //та перемінні S, a, A, B, W типу double
cout<<" Введіть A<0: «;//Вводимо запит
cin>>A; //вводимо число А<0
cout<<" Введіть B>0: «;//Вводимо запит
cin>>B; //вводимо число B>0
S=0; //Перемінній s присвоюємо початкове значення 0
for (i=1;i<=N;i++) //Задаємо цикл для проходження значень
{ //параметра і від 0 до N кроком 1
S+=(pow (-1,i))*((sqrt (2)+i));//Знаходимо s за вказаною формулою
a=S; //Перемінній, а присвоюємо значення перемінної s
if ((a<=A)||(a>=B)) //Умова: якщо значення перемінної а < або =
{//значенню перемінної А, та > або = значенню перемінної В, виводимо