Программирование на C / C++ / Лабораторные работы2 / УГАТУ АСОИ-136 пр-ние на ЯВУ лаб.№2 вар.№17_Миша
.docУфимский государственный авиационный технический университет
Кафедра АСУ
Отчёт
по лабораторной работе №2
по дисциплине ”Программирование на ЯВУ”.
вариант №17.
Выполнил: студент группы АСОИ-136
Косинский М.О. Проверила: доцент кафедры АПРиС
Фёдорова Н.И.
Уфа 2007.
Тема: Циклические алгоритмы.
Цель работы: Знакомство и получение навыков реализации циклических алгоритмов и обработки одномерных массивов на языке С++.
Вариант №17.
Задание:
а)S=
Решение:
Блок-схема
Текст программы на С++
#include<iostream.h>
#include<conio.h>
void main()
{double c,s;
int i,k,m;
clrscr();
cout<<"введите переменные m\n";
cout<<"m=";
cin>>m;
s=0;
for(k=1;k<=m;k++)
{c=1;
for(i=0;i<=m;i++)
{c*=k+i;
cout<<"c="<<c<<endl;
}
s+=c;
}
cout<<"сумма s="<<s;
getch();
}
Проверка:
При m =3
Получаем: 1(1+1)(1+2)(1+3)+…+3(3+1)(3+2)(3+3)=1*2*3*4+2*3*4*5+3*4*5*6=24+120+360==504;
При m=2
Получаем:1(1+1)(1+2)+2(2+1)(2+2)=1*2*3+2*3*4=6+24=30.
б) Задан массив, содержащий N элементов. Упорядочить его элементы с четными индексами в порядке возрастания, а элементы с нечетными индексами в порядке убывания.
Решение:
Необходимо элементы с четными индексами сравнить друг сдругом и записать в нужном порядке. Аналогично и с нечетными элементами.
Блок-схема
Текст программы на С++
#include<iostream.h>
#include<conio.h>
void main()
{const n=6;
double a[n],t;
int i,k;
clrscr();
cout<<"введите массив a[i]\n";
for(i=0;i<n;i++)
{
cout<<"a["<<i+1<<"]=";
cin>>a[i];
}
cout<<"исходный массив a[i]= ";
for(i=0;i<n;i++)
cout<<a[i]<<" ";
for(k=1;k<=n;k=k+2)
for(i=k+2;i<=n;i=i+2)
if(a[k]>a[i])
{
t=a[k];
a[k]=a[i];
a[i]=t;
}
for(k=0;k<=(n-1);k=k+2)
for(i=k+2;i<=(n-1);i=i+2)
if(a[k]<a[i])
{
t=a[k];
a[k]=a[i];
a[i]=t;
}
cout<<"\nконечный массив a[i]= ";
for(i=0;i<n;i++)
cout<<a[i]<<" ";
getch();
}
Проверка:
При a[i] = 1 9 2 8 3 7
Результат: a[i] = 3 7 2 8 1 9
При a[i] = -5 9 89 -65 2 37
Результат: a[i]= 89 -65 2 9 -5 37