Студопедия КАТЕГОРИИ: АвтоАвтоматизацияАрхитектураАстрономияАудитБиологияБухгалтерияВоенное делоГенетикаГеографияГеологияГосударствоДомЖурналистика и СМИИзобретательствоИностранные языкиИнформатикаИскусствоИсторияКомпьютерыКулинарияКультураЛексикологияЛитератураЛогикаМаркетингМатематикаМашиностроениеМедицинаМенеджментМеталлы и СваркаМеханикаМузыкаНаселениеОбразованиеОхрана безопасности жизниОхрана ТрудаПедагогикаПолитикаПравоПриборостроениеПрограммированиеПроизводствоПромышленностьПсихологияРадиоРегилияСвязьСоциологияСпортСтандартизацияСтроительствоТехнологииТорговляТуризмФизикаФизиологияФилософияФинансыХимияХозяйствоЦеннообразованиеЧерчениеЭкологияЭконометрикаЭкономикаЭлектроникаЮриспунденкция |
Программирование арифметических циклов
Для арифметического цикла заранее известно сколько раз выполняется тело цикла. Задача №2.Дана последовательность целых чисел из n элементов. Найти среднее арифметическое этой последовательности. #include <iostream.h> #include <math.h> void main() { int a,n,i; double s=0; //инициализируем переменную начальным значением cout<<"\nEnter n"; cin>>n; // вводим количество элементов в последовательности for(i=1;i<=n;i++)// цикл выполняется n раз { cout<<"\nEnter a"; cin>>a; // вводим переменную s+=a;//добавляем значение переменной к сумме } s=s/n;//находим среднее арифметическое cout<<"\nсреднее арифметическое равно="<<s<<"\n"; }
Задача №3.Найти значение S=1+2+3+4+. . . +N
#include <iostream.h> #include <math.h> void main() { //описываем переменные и инициализируем s начальным значением int n,i,s=0; cout<<"\nEnter n"; cin>>n; // вводим количество элементов в последовательности for(i=1; i<=n; i++)++)// цикл выполняется n раз s+=i; //добавляем значение переменной к сумме cout<<"\nS="<<s<<"\n"; } Программирование итерационных циклов
Для итерационного цикла должно быть известно условие выполнения цикла. При использовании цикла с предусловием (while) тело цикла может не выполняться ни разу, если сразу же не выполняется условие цикла. При использовании цикла с постусловием тело цикла будет выполнено хотя бы один раз. И в том, и в другом случае используется условие выполнения цикла. Задача №5.Дана последовательность целых чисел, за которой следует 0. Найти минимальный элемент этой последовательности. Для решения этой задачи используем цикл с предусловием, т. к. ноль не входит в последовательность и его не надо обрабатывать при поиске минимального значения.
#include <iostream.h> #include <math.h> void main() { int a,min; cout<<"\nEnter a"; cin>>a; //вводим первое число min=a;//присваиваем переменной min начальное значение while(a!=0)//цикл с предусловием { cout<<"\nEnter a"; cin>>a;//вводим следующее число /*сравниваем с нулем, т. к. 0 не входит в последовательность и не может быть минимальным и с минимальным значением*/ if (a!=0&&a<min) min=a; //запоминаем в min новое значение } cout<<"\nmin="<<min<<"\n";//вывод результата } Тесты:
Для решения этой же задачи можно написать программу с использованием цикла с постусловием.
#include <iostream.h> #include <math.h> void main() { int a,min; cout<<"\nEnter a"; cin>>a; //вводим первое число min=a;//присваиваем переменной min начальное значение do //цикл с постусловием { cout<<"\nEnter a"; cin>>a;//вводим следующее число if (a==0)break;// выход из цикла, если ввели 0 if (a<min)//сравниваем а с текущим min min=a; //запоминаем в min новое значение } //бесконечный цикл, т. к. выход осуществляется с помощью break while(1); cout<<"\nmin="<<min<<"\n";//вывод результата }
Эту же задачу можно решить с помощью цикла for:
#include <iostream.h> #include <math.h> void main() { int a,min; cout<<"\nEnter a"; cin>>a; //вводим первое число min=a;//присваиваем переменной min начальное значение for(;a!=0;)//цикл используется как цикл с предусловием { cout<<"\nEnter a"; cin>>a;//вводим следующее число /*сравниваем с нулем, т. к. 0 не входит в последовательность и не может быть минимальным и с минимальным значением*/ if (a!=0&&a<min) min=a; //запоминаем в min новое значение } cout<<"\nmin="<<min<<"\n";//вывод результата }
Задача №6. Найти сумму чисел Фибоначчи, меньших заданного числа Q. Числа Фибоначчи – это последовательность чисел: 1, 1, 2, 3, 5, 8, 13, …., т. е. каждое следующее число – это сумма двух предыдущих.
#include<iostream.h> void main() { int a=1,//первое число b=1,//второе число s=2,//сумма чисел Фибоначчи Q, c;//следующее число cout<<"\nEnter Q"; cin>>Q;//вводим число Q if(Q<=0)cout<<"Error in Q"; else //если Q=1, то сумма тоже будет 1 (первое число) if(Q==1)s=1; else { c=a+b;//вычисляем следующее число while(c<Q) { s+=c;//вычисляем сумму a=b;//меняем первое число на второе b=c;//меняем второе число на текущее c=a+b;//вычисляем текущее число Фибоначчи }
} cout<<"\nS="<<s<<"\n";//выводим результат }
Тесты:
Программирование вложенных циклов
Тело цикла может содержать любые операторы, в том числе и другие циклы. Оператор цикла, который содержится в теле другого цикла, называется вложенным. Задача №7: Напечатать N простых чисел. Разделим эту задачу на две подзадачи: 1. определить является ли число простым; 2. напечатать n чисел, удовлетворяющих заданному условию. Простым называется число, которое делится только само на себя и на единицу (сама единица простым числом не является). Тогда, чтобы определить является число простым или нет, нужно проверить есть ли у него другие делители. Для этого будем делить число К на все числа от 2 и до К, используя цикл с постусловием. Если К разделится на d без остатка только, когда d станет равно К, значит, число простое: d=1;//начальное значение делителя do { d++;//увеличиваем делитель } /*цикл выполняется пока остаток от деления К на d не равен 0 (не делится)*/ while(К%d!=0); if(К==d)//делитель равен К, т. е. число простое cout<<a<<" ";
Для решения второй подзадачи, нам нужно перебирать все числа, начиная с 2, и печатать только те, которые являются простыми. При этом, нужно подсчитывать напечатанные числа. Выполнение цикла закончится, когда будет напечатано n чисел. K=1;//присваиваем начальное значение числу //выполняем цикл пока не будет напечатано n чисел for(int i=0;i<n;) { K++;//берем следующее число if (K простое число) i++;//увеличиваем счетчик простых чисел } Объединив эти два фрагмента вместе, получим решение поставленной задачи
#include<iostream.h> void main() { int K=1,n,d; cout<<"\nEnter N"; cin>>n; //неправильно задано число n if(n<1) { cout<<”\nerror in data”; return;//завершение программы } for(int i=0;i<n;)//внешний цикл { K++;d=1; do //внутренний цикл { d++; } while(K%d!=0);//конец внутреннего цикла if(K==d){ cout<<K<<" "; i++;}
}//конец внешнего цикла } Тесты
Массивы
В языке C/C++, кроме базовых типов, разрешено вводить и использовать производные типы, полученные на основе базовых. Стандарт языка определяет три способа получения производных типов: · массив элементов заданного типа; · указатель на объект заданного типа; · функция, возвращающая значение заданного типа.
Массив – это упорядоченная последовательность переменных одного типа. Каждому элементу массива отводится одна ячейка памяти. Элементы одного массива занимают последовательно расположенные ячейки памяти. Все элементы имеют одно имя – имя массива и отличаются индексами – порядковыми номерами в массиве. Количество элементов в массиве называется его размером. Чтобы отвести в памяти нужное количество ячеек для размещения массива, надо заранее знать его размер. Резервирование памяти для массива выполняется на этапе компиляции программы.
12.1. Определение массива в C/C++
Массивы определяются следующим образом:
int a[100];//массив из 100 элементов целого типа
Операция sizeof(a) даст результат 400, т. е. 100 элементов по 4 байта. Элементы массива всегда нумеруются с 0.
Рис. 4. Размещение массива в памяти Чтобы обратиться к элементу массива, надо указать имя массива и номер элемента в массиве (индекс): 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 байта. Длина массива вычисляется компилятором по количеству значений, перечисленных при инициализации.
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Последнее изменение этой страницы: 2018-04-12; просмотров: 337. stydopedya.ru не претендует на авторское право материалов, которые вылажены, но предоставляет бесплатный доступ к ним. В случае нарушения авторского права или персональных данных напишите сюда... |