Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лабы по инф с 4 по 10 (3 вариант) .doc
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
440.32 Кб
Скачать

Лабораторная работа №4

Тема «Программирование циклических вычислительных процессов с варьируемым параметром цикла»

Цель работы: Изучение операторов цикла в языке С++.

Задание. Составить алгоритм решения задачи согласно своему варианту. В отчете предоставить три программы с разными операторами цикла (do … while, while, for). В алгоритме и программе массивов не использовать.

Вариант 3. Вычислить значения t, соответствующие каждому значению х (xn<=x<=xk, шаг изменения равен dx) по формуле . Определить . На экран выводить каждую вторую пару значений х и t. Контрольный расчет провести при a=3.5, b=6.8, xn=-3, xk=3, dx=0.5.

  1. Блок-схема алгоритма.

  1. Оператор цикла do…while.

#include <math.h>

#include <iostream.h>

#include <iomanip.h>

int main(void)

{float a,b,x,xn,xk,dx;

double t,f,summ,proiz;

int fl;

cout<<"Enter Xn: "; //вводим все переменные

cin>>xn;

cout<<"Enter Xk: ";

cin>>xk;

cout<<"Enter dX: ";

cin>>dx;

cout<<"Enter A: ";

cin>>a;

cout<<"Enter B: ";

cin>>b;

summ=0;//задаем первоначальные

proiz=1;// значения

fl=-1;//флаг для вывода каждого второго t

x=xn;

do

{ t=fabs(a-b*x*x*x)/(cos(b)+sin(a)-12);//вычисляем

summ+=t;

proiz*=t;

if (fl>0)

cout<<"X= "<<setw(8)<<x<<" T="<<setw(8)<<t<<endl;

x+=dx;//переходим к следующему х

fl*=-1;

}while (x<=xk);

f=summ/proiz;

cout<<"F= "<<setw(8)<<f<<endl;

return 0;

}

  1. Оператор цикла while.

#include <math.h>

#include <iostream.h>

#include <iomanip.h>

Int main(void)

{float a,b,x,xn,xk,dx;

double t,f,summ,proiz;

int fl;

cout<<"Enter Xn: ";

cin>>xn;

cout<<"Enter Xk: ";

cin>>xk;

cout<<"Enter dX: ";

cin>>dx;

cout<<"Enter A: ";

cin>>a;

cout<<"Enter B: ";

cin>>b;

summ=0;

proiz=1;

fl=-1;

x=xn;

while (x<=xk)

{ t=fabs(a-b*x*x*x)/(cos(b)+sin(a)-12);

summ+=t;

proiz*=t;

if (fl>0)

cout<<"X= "<<setw(8)<<x<<" T="<<setw(8)<<t<<endl;

x+=dx;

fl*=-1;

}

f=summ/proiz;

cout<<"F= "<<setw(8)<<f<<endl;

return 0;

}

  1. Оператор цикла for.

#include <math.h>

#include <iostream.h>

#include <iomanip.h>

Int main(void)

{float a,b,x,xn,xk,dx;

double t,f,summ,proiz;

int i;

cout<<"Enter Xn: ";

cin>>xn;

cout<<"Enter Xk: ";

cin>>xk;

cout<<"Enter dX: ";

cin>>dx;

cout<<"Enter A: ";

cin>>a;

cout<<"Enter B: ";

cin>>b;

summ=0;

proiz=1;

i=1;

for(x=xn;x<=xk;x+=dx)

{ t=fabs(a-b*x*x*x)/(cos(b)+sin(a)-12);

summ+=t;

proiz*=t;

if (i % 2==0)//число четное, если остаток от деления на 2=0

cout<<"X= "<<setw(8)<<x<<" T="<<setw(8)<<t<<endl;

i++;

}

f=summ/proiz;

cout<<"F= "<<setw(8)<<f<<endl;

return 0;

}

  1. Контрольный расчет.

Лабораторная работа №5

Тема «Программирование циклических вычислительных процессов. Последовательность чисел»

Цель работы: Изучение операторов цикла в языке С++.

Задание. Составить алгоритм решения задачи согласно своему варианту и написать программу на языке С++. В алгоритме и программе массивов не использовать.

Вариант 3. Вводится последовательность из N целых чисел, найти разность между произведением нечетных чисел и наибольшим среди отрицательных чисел.

  1. Блок-схема алгоритма.

  1. Листинг программы

#include <iostream.h>

#include <iomanip.h>

Int main(void)

{int i,n,k,curx,max;

long proiz,diff;

cout<<"Enter N: ";

cin>>n;

proiz=1;

max=1;

k=0; //для подсчета кол-ва нечетных

for(i=1;i<=n;i++)

{

cout<<"Enter X"<<setw(2)<<i<<": ";

cin>>curx; //вводим число

if (curx%2>0) {proiz*=curx;k++;} //если нечетное

if ((curx<0)&&(curx>max)||(max>0)) max=curx;//если отрицательное

}

if ((max<0)&&(k>0))//были и отрицательные, и нечетные

{ diff=proiz-max;

cout<<"Proizv ="<<setw(8)<<proiz<<endl<<"Max x<0="<<setw(8)<< max<<endl<<"Differ ="<<setw(8)<<diff<<endl;

}

else cout<<"Ne vipolneno uslovie otbora"<<endl;

return 0;

}

  1. Контрольный расчет.

Лабораторная работа №6

Тема «Программирование циклических вычислительных процессов с использованием функций»

Цель работы: Изучение функций в языке С++.

Задание. Составить алгоритм решения задачи согласно своему варианту и написать программу на языке C++. В отчете предоставить блок-схемы функции согласно задания и основной функции.

Вариант 3. Вводится последовательность из N целых чисел. Найти наименьшую по значению цифру в каждом числе последовательности (функцией оформить определение наименьшей цифры числа).

  1. Блок-схема функции согласно задания.

  1. Блок-схема основной функции.

  1. Листинг программы.

#include <iostream.h>

#include <iomanip.h>

#include <math.h>

int mindig(long x)

{

int i,min,mr,curd;

min=10;

mr=int(log10(x));//определяем старший разряд числа

for(i=mr;i>=0;i--)

{

curd=x/pow(10,i);//находим число в текущем разряде

if (curd<min) min=curd;

x-=curd*pow(10,i);//убираем из числа старший разряд

}

return min;

};