
Программирование на C / C++ / Лабораторные работы2 / УГАТУ АСОИ-136 пр-ние на ЯВУ лаб.№2 вар.№25_1_Даша
.docУфимский государственный авиационный технический университет
Кафедра АСУ
Отчёт
по лабораторной работе №2
по дисциплине ”Программирование на ЯВУ”.
вариант №25.
Выполнил: студент группы АСОИ-136
Разбежкина Д. Проверила: доцент кафедры АПРиС
Фёдорова Н.И.
Уфа 2007.
Тема: Циклические алгоритмы.
Цель работы: Знакомство и получение навыков реализации циклических алгоритмов и обработки одномерных массивов на языке С.
Вариант №25.
Задание:
а)
Решение:
Блок-схема
Текст программы на С++
#include<iostream.h>
#include<conio.h>
#include<math.h>
void main()
{int i,m,n,k;
double c,s,p1,p2,p3;
clrscr();
cout<<"vvedite m i n pri yslovii m<n:\n";
cout<<"m=";
cin>>m;
cout<<"n=";
cin>>n;
s=0;
for(k=m;k<=n;k++)
{cout<<" pri k="<<k;
p1=p2=p3=1;
for(i=1;i<=2*n;i++)
{
if(i<=2*k)
p2=p2*i;
p1=p1*i;
if(i<=2*fabs(k-n))
p3=p3*i;
}
c=p1/(p2*p3);
cout<<" c="<<c<<endl;
s=s+c;
}
cout<<endl<<" s="<<s;
getch();
} Проверка:
При m =1 и n=5
Получаем
При m=4 и n=8
Получаем
б) Задан целочисленный массив, содержащий N элементов. Найти номера индексов, соответствующих среднеарифметическому значению среди положительных элементов массива.
Блок-схема
Текст
программы на С++
#include<iostream.h>
#include<conio.h>
void
main()
{const
N=6;
int i,fl,a[N];
double S,sred,del;
clrscr();
cout<<"vvedite celochislennye elementy massiva\n";
for(i=0;i<N;i++)
{
cout<<"a["<<i+1<<"]=";
cin>>a[i];
}
S=0;del=0;
for(i=0;i<N;i++)
if(a[i]>0)
{
S=S+a[i];
del=del+1;
}
cout<<"S="<<S<<endl;
cout<<"del="<<del<<endl;
sred=S/del;
fl=0;
cout<<"sred="<<sred<<endl;
for(i=0;i<N;i++)
{
if(a[i]==sred)
{
cout<<"index="<<i<<endl;
fl=1;
}
}
if(fl==0)
cout<<"net takih elementov v massive";
getch();
}
Проверка:
При a[i]=-45,56,-0,58,-35,57;
sred=(56+58+57)/3=171/3=57;
Результат: index=6;
При a[i]= 15,98,37,56,81,49;
sred=(15+98+37+56+81+49)/6=336/6=56;
Результат: index= 4;
При a[i]=9,11,12,13,15,17;
sred=(9+11+12+13+15+17)/6=77/6=12.83333333
Результат: нет таких элементов.