
Вариант №13
Завдання 1
Лінійний обчислювальний процес.
Скласти алгоритм та написати програму розрахунку за функціями при різних значеннях аргументу.
Обчислити R=x3(x+1)/b2 – sin2(x(x+a));
S=
де a=0,7;
b=0,05;
x=0,5.
Завдання 2
Циклічні програми з розгалуженням.
Скласти програму обчислення значення функцій при різних значеннях аргументів, заданих інтервалом зміни і величиною кроку, результат представити у вигляді таблиці.
де
Завдання 3
Одновимірні масиви (з використанням динамічних масивів та покажчиків).
Скласти алгоритм і програму, яка в одновимірному масиві обчислює:
а) Кількість елементів масиву, лежачих в діапазоні від А до В.
б) Суму елементів масиву, розташованих після максимального елементу.
в) Упорядкувати елементи масиву за спаданням модулів.
Завдання 4
Двовимірні масиви з підпрограмами.
Використовуючи підпрограми скласти алгоритм та програму обробки двовимірного масиву:
Складіть програму пошуку мінімального елемента, розташованого під головною діагоналлю, і максимального елемента, розташованого над головною діагоналлю заданої речовій матриці А (nxn).
Завдання 5
Обробка символьних рядків.
Надрукувати слова, які складаються з перших та останніх літер (але не цифр) усіх слів тексту.
Завдання 6
Обробка типізованих файлів.
Файл Студент
Структура запису:
• ПІБ (40 знаків);
• номер курсу (1 знак);
• номер групи (3 знаки);
• успішність - 5 іспитів у кожній з 10 сесій;
• форма навчання (цільова, договірна) (1 знак);
• іспит:
- Найменування предмета (10 знаків);
- Оцінка (1 знак).
Записи впорядковані за номером курсу, всередині курсу - за номером групи, в групі по ПІБ.
Файл Телефонний довідник
Структура запису:
• ПІБ (40 знаків);
• адресу:
- Вулиця (20 знаків);
- Номер будинку (4 знаки);
- Квартира (3 знаки);
• номер телефону (6 знаків).
Записи впорядковані за ПІБ.
Файл Каталог файлів
Структура запису:
• ім'я файла (8 знаків);
• специфікація (3 знаки);
• дата створення:
- День (2 знака);
- Місяць (2 знака);
- Рік (2 знака);
• кількість блоків (4 знаки);
Записи впорядковані за іменами файлів.
Файл Каталог книг
Структура запису:
• автор (40 знаків);
• назву (80 знаків);
• рік видання (4 знаки);
• жанр (20 знаків).
Записи впорядковані за прізвищем авторів.
Створіть файл Студент. Занесіть в окремі файли записи про студентів різних форм навчання.
Завдання 7
Простір імен (пойменовані області).
Описати структуру з ім'ям NOTE, що містить такі поля:
- Прізвище, ім'я;
- Номер телефону;
- Дата народження (масив із трьох чисел).
Написати програму, що виконує наступні дії:
- Введення з клавіатури даних в масив, що складається з восьми елементів типу NOTE; записи повинні бути розміщені за алфавітом;
- Вивід на екран інформації про людей, чиї дні народження припадають на місяць, значення якого введено з клавіатури;
- Якщо таких немає, видати на дисплей відповідне повідомлення.
Завдання 8
Побудова графіку функції.
-
[0, π]
0.1
Завдання 9
Створення графічного зображення.
Завдання 10
Створення графічного зображення з елементами мультиплікації.
Переробити варіант 4 для кола, вписаного в прямокутник.
(Переміщати коло по вертикалі з заданим кроком і затримкою в одну секунду.)
Завдання №1
Листинг программы:
#include "stdafx.h"
#include <math.h>
#include <conio.h>
#include <locale.h>
#include <iostream>
int main()
{
setlocale(LC_ALL,"Russian");
using namespace std;
const double a=0.7, b=0.05,x=0.5;;
double r, s;
cout<<"A="<<a;
cout<<"\nB="<<b;
cout<<"\nX="<<x;
r=(pow(x,3))*((x+1)/(pow(b,2)))-(pow(sin(x*(x+a)),2));
s=(sqrt((x*b)/a))+(pow(cos(pow(x+b,3)),2));
cout<<"\n\nРадиус="<<r;
cout<<"\nПлощадь="<<s;
getch();
return 0;
}
Блок схема:
Начало
Конец
Вывод
r,
s
Расчет
радиуса и площади: r, s
Вывод
переменных
a,b,x
Результат работы программы:
Завдання №2
Листинг программы:
#include "stdafx.h"
#include <math.h>
#include <conio.h>
#include <stdio.h>
int main()
{
float z,x,y;
const float a=1.7,b=2.3,hx=0.9,hy=1;
x=-1;
y=-2;
printf(" _________________________\n| X | Y | Z | X*Y |\n _________________________\n");
while ((x>=-1) && (x<=1))
{
if ((x*y)>0) z=log(sqrt(a*pow(x,2)+b*pow(y,3)));
else z=(pow(a,x)+pow(b,y));
printf("|%5.2f|%5.2f|%5.2f|%5.2f |\n",x,y,z,x*y);
x+=hx;
y+=hy;
}
printf(" _________________________\n");
getch();
return 0;
}
Блок схема:
Начало
Вывод шапки таблицы
X>=-1; X<=1;
Ложь
Истина
X*Y>0
Истина
Конец
Вывод “footer’a”
таблицы
x+=hx; y+=hy;
Вывод x,y,z,x*y
z=log(sqrt(a*pow(x,2)+b*pow(y,3)))
z=log(sqrt(a*pow(x,2)+b*pow(y,3)))
Результат работы программы:
Завдання №3
Листинг программы:
#include "stdafx.h"
#include <iostream>
#include <conio.h>
#include <locale.h>
using namespace std;
void get(int massiv[], int elements)
{
setlocale(LC_ALL,"Russian");
int z;
for (z=0;z<elements;z++)
{
cout<<"Введите значение "<<z<<":";
cin>>massiv[z];
}
}
void show (int massiv[], int elements)
{
setlocale(LC_ALL,"Russian");
int i;
cout<<"Елементы массива:"<<endl;
for(i=0;i<elements;i++) cout<<"| "<<massiv[i]<<" |";
cout<<endl;
}
void max (int massiv[], int elements)
{
setlocale(LC_ALL,"Russian");
int max=massiv[0];
int m,mx;
for (m=0;m<elements;m++)
{
if (max<massiv[m]) max=massiv[m] , mx=m+1;
}
cout<<"Максимальное значение элемента:"<<max<<endl;
cout<<"Порядковый номер элемента: "<<mx<<endl;
}
void summ(int massiv[], int elements)
{
setlocale(LC_ALL,"Russian");
int o,j,s;
cout<<"Введите порядковый номер элемента с которого начинать считать сумму: ";
cin>>j;
j-=1;
s=0;
for(o=j;o<elements;o++)
{
s+=massiv[o];
}
cout<<"Сумма элементов = "<<s;
}
void sort(int massiv[],int elements)
{
setlocale(LC_ALL,"Russian") ;
int v,w,zero,times=0;
for(w=0;w<elements;w++)
{
for(v=0;v<elements;v++)
{
if(massiv[v]<massiv[v+1])
{
zero=massiv[v];
massiv[v]=massiv[v+1];
massiv[v+1]=zero;
times=times+1;
}
}
}
cout<<"Упорядоченный массив:";
for(w=0;w<elements;w++)
{
cout<<"| "<<massiv[w]<<" |";
}
}
void main(void)
{
setlocale(LC_ALL,"Russian");
int little[10];
int a,k,j,i;
cout<<"Введите кол-во редактируемых элементов массива, не более 10: ";
cin>>k;
cout<<endl;
if ((k<0) && (k>10))
{
cout<<"Вы ввели неверное кол-во элементов массива, пожалуйста попробуйте еще раз"<<endl;
getch();
}
else if ((k>=0) && (k<=10))
{
get(little,k);
cout<<endl;
cout<<"Введите кол-во отображаемых элементов массива"<<endl<<"Всего элементов: "<<k<<endl<<"Показать: ";
cin>>a;
if ((a>=0) && (a<=k))
{
cout<<endl;
show (little, a);
cout<<endl;
max (little, a);
cout<<endl;
summ (little, a);
cout<<endl;
sort (little, a);
getch();
}
else
{
cout<<"Вы ввели неверное кол-во элементов массива, пожалуйста попробуйте еще раз"<<endl;
getch();
}
}
}
Блок схема:
Ложь
Ложь
Истина
Истина
Конец
Вывод
сообщения о том
что введено неверное
число
Вызов
процедуры вывода
массива, нахождения максимально
элемента и сортировки
массива
a>=0
a<=k
Ввод
отображаемых элементов массива : a
Вызов
процедуры заполнения
массива с
клавиатуры
If
k>=0 K
<=10
Ввод
кол-ва элементов массива : k
Начало
Результат работы программы: