Вложенные циклы
Итерационные циклы
Программирование арифметических циклов.
Для арифметического цикла заранее известно сколько раз выполняется тело цикла.
Задача №2
Дана последовательность целых чисел из n элементов. Найти среднее арифметическое этой последовательности.
#include <iostream.h>
#include <math.h>
void main()
{
int a,n,i,k=0;
double s=0;
cout<<"\nEnter n";
cin>>n;
for(i=1;i<=n;i++)
{
cout<<"\nEnter a";
cin>>a;
s+=a;k++;
}
s=s/k;
cout<<"\nSr. arifm="<<s<<"\n";
}
Тесты
N | |
A | 1,2,3,4,5,3 |
S |
Задача №3
S=1+2+3+4+... +N
#include <iostream.h>
#include <math.h>
void main()
{
int n,i,s=0;
cout<<"\nEnter n";
cin>>n;
if(n<=0) {cout<<”\nN<=0”;return;}
for(i=1;i<=n;i++)s+=i;
cout<<"\nS="<<s<<"\n";
}
Тесты
n | S |
n=-1 | N<=0 |
n=0 | N<=0 |
n=5 | S=15 |
Задача №4
S=15-17+19-21+..., всего n слагаемых.
#include <iostream.h>
#include <math.h>
void main()
{
int n,i,s=0,a=15;
cout<<"\nEnter n";
cin>>n;
if(n<=0) {cout<<”\nN<=0”;return;}
for(i=1;i<=n;i++)
{
if(i%2==1)s+=a;
else s-=a;
a+=2;
}
cout<<"\nS="<<s<<"\n";
}
Тесты
n | S |
n=-1 | N<=0 |
n=0 | N<=0 |
n=3 | S=17 |
Для итерационного цикла известно условие выполнения цикла.
Задача №5
Дана последовательность целых чисел, за которой следует 0. Найти минимальный элемент этой последовательности.
#include <iostream.h>
#include <math.h>
void main()
{
int a,min;
cout<<"\nEnter a";
cin>>a;
min=a;
while(a!=0)//for(;a!=0;)
{
cout<<"\nEnter a";
cin>>a;
if (a!=0&&a<min)min=a;
}
cout<<"\nmin="<<min<<"\n";
}
Тесты:
a | -3 | -10 | |||
min | -10 |
a | |||||
min |
a | -6 | -43 | -15 | -10 | |
min | -10 |
Задача №6: Найти сумму чисел Фибоначчи, меньших заданного числа Q.
#include<iostream.h>
void main()
{
int a=1,b=1,s=2,Q,c;
cout<<"\nEnter Q";
cin>>Q;
if(Q<=0)cout<<"Error in Q";
else
if(Q==1)cout<<"\nS=1";
else
{
c=a+b;
while(c<Q) //for(;c!=0;)
{
s+=c;
a=b;
b=c;
c=a+b;
}
cout<<"\nS="<<s<<"\n";
}
}
Тесты:
Q | S |
-1 | Error in Q |
Error in Q | |
Тесты:
Q | |
-1 | Error in Q |
Error in Q | |
2 3 | |
2 3 5 7 11 |
Задача №7: Напечатать N простых чисел.
#include<iostream.h>
void main()
{
int a=1,n,d;
cout<<"\nEnter N";
cin>>n;
for(int i=0;i<n;)//внешний цикл
{
a++;d=1;
do //внутренний цикл
{
d++;
}
while(a%d!=0);//конец внутреннего цикла
if(a==d){
cout<<a<<" ";
i++;}
}//конец внешнего цикла
}
В языке Си/Си++,кроме базовых типов, разрешено вводить и использовать производные типы, полученные на основе базовых. Стандарт языка определяет три способа получения производных типов:
- массив элементов заданного типа;
- указатель на объект заданного типа;
- функция, возвращающая значение заданного типа.
Массив – это упорядоченная последовательность переменных одного типа. Каждому элементу массива отводится одна ячейка памяти. Элементы одного массива занимают последовательно расположенные ячейки памяти. Все элементы имеют одно имя - имя массива и отличаются индексами – порядковыми номерами в массиве. Количество элементов в массиве называется его размером. Чтобы отвести в памяти нужное количество ячеек для размещения массива, надо заранее знать его размер. Резервирование памяти для массива выполняется на этапе компиляции программы.
6.1. Определение массива в Си/Си++
int a[100];//массив из 100 элементов целого типа
Операция sizeof(a) даст результат 400, т. е.100 элементов по 4 байта.
Элементы массива всегда нумеруются с 0.
….. |
Чтобы обратиться к элементу массива, надо указать имя массива и номер элемента в массиве (индекс):
a[0] – индекс задается как константа,
a[55] – индекс задается как константа,
a[I] – индекс задается как переменная,
a[2*I] – индекс задается как выражение.
Элементы массива можно задавать при его определении:
int a[10]={1,2,3,4,5,6,7,8,9,10};
Операция sizeof(a) даст результат 40, т. е.10 элементов по 4 байта.
int a[10]={1,2,3,4,5};
Операция sizeof(a) даст результат 40, т. е.10 элементов по 4 байта. Если количество начальных значений меньше, чем объявленная длина массива, то начальные элементы массива получат только первые элементы.
int a[]={1,2,3,4,5};
Операция sizeof(a) даст результат 20, т. е.5 элементов по 4 байта. Длин массива вычисляется компилятором по количеству значений, перечисленных при инициализации.