Программирование на C / C++ / Лабораторные работы2 / УГАТУ АСОИ-136 пр-ние на ЯВУ лаб.№2 вар.№7
.docУфимский государственный авиационный технический университет
Кафедра АСУ
Отчёт
по лабораторной работе №2
по дисциплине ”Программирование на ЯВУ”.
вариант №2.
Выполнил: студент группы АСОИ-136
Багавутдинов И.И. Проверила: доцент кафедры АПРиС
Фёдорова Н.И.
Уфа 2007.
Тема: Циклические алгоритмы.
Цель работы: получение навыков составления и отладки простейших программ на языке С++.
Вариант №2.
Задание:
а)S=m∑n=1 n*xn ;
Решение:
S=x1+2x2+3x3+…+mxm ;
Блок-схема
Текст программы на С++
#include<iostream.h>
#include<math.h>
#include<conio.h>
void main()
{double m,n,i,S,x,c;
clrscr();
cout<<"\nзадача: найти сумму n*(x^n) при меняющемся n от 1 до m\n";
cout<<”пример: при x=2, m=5 получаем 1*(2^1)+2*(2^2)+3*(2^3)+4*(2^4)+5*(2^5)=258\n ваша очередь: введите натуральные числа x и m\n";
cout<<"x=";
cin>>x;
cout<<"m=";
cin>>m;
n=0;
S=0;
for(i=0;i<m;i++)
{n++;
S=S+n*pow(x,n);}
cout<<"сумма S="<<S;
cout<<" ;-) ура получилось!!!";
getch();
}
Проверка:
x=2 m=5 результат S=258;
б) m=maxi {|ai|}, где (a1, a2, a3, … an) массив, вводимый с клавиатуры.
Решение: Принцип решения этой задачи: взять 1 ячейку массива, как наибольшее значение, и сравнивать ее с остальными ячейками. При этом если значение ячейки сравниваемой с 1-й ячейкой окажется больше, то заменить 1-ю на сравниваемую.
Блок-схема
Текст программы на С++
#include<iostream.h>
#include<conio.h>
#include<math.h>
void main()
{double *p,x,m;
int i,n;
clrscr();
cout<<"\nзадача: найти из сравниваемых чисел наибольшее по модулю \n";
cout<<"\n\n\nвведите число сравниваемых значений \nn=";
cin>>n;
p=new double[n];
cout<<" введите сравниваемые значения через пробел” \np[i]=";
for(i=0;i<n;i++)
cin>>p[i];
m=fabs(p[0]);
for(i=0;i<n;i++)
{if(m<fabs(p[i])) m=fabs(p[i]);
}
cout<<"наибольшее значение m="<<m;
delete[]p;
getch();
}
Проверка:
n=5 p[i]=4 -5 56 -98 12; результат: m=98;
n=3 p[i]=456 789 -123; результат: m=789.