Цикл с предусловием while.
Введение.
О языках Си и C++.
В качестве базового языка программирования выбран C++, который является одним из главных инструментом в современном программировании. C++ является мощным и достаточно объемным языком, но, в то же время, у него есть достоинства, которые позволяют рекомендовать его для первоначального обучения программированию. Отметим, например, последовательную реализацию в C++ концепции структурного программирования, простой и удобный ввод и вывод.
Предшественником языка C++ является язык Си, разработанный Денисом Ритчи в начале 1970-х годов Си относится к языкам среднего уровня, поскольку в нем сочетаются управляющие структуры высокого уровня и возможность манипулировать отдельными битами, байтами и адресами. Язык Си быстро завоевал популярность у программистов благодаря своей лаконичности, выразительности и эффективности. Долго время единственным руководством по языку Си была книга заслужившая почетное название «библия языка Си». В 1989г. принят стандарт языка Си Международной организацией стандартов (International Standard Organization – ISO), в 1999г. был принят новый стандарт. Если программа написана в соответствии со стандартом языка, это гарантирует, что она будет выполняться на любом компьютере и в любой среде разработки.
В 1979г. Бьярн Страуструп на основе языка Си разработал язык C++. Главным нововведением было включение в язык понятия класса, с помощью которого реализована концепция объектно-ориентированного программирования. В 1998г. принят стандарт языка C++. Язык Си является, за небольшими исключениями, подмножеством языка C++, так что программа, написанная на Си, является и программой на C++.
Синтаксис языков Си и C++ использован в новейших языках программирования Java и C# (произносится Си-шарп), которые предназначены для разработки приложений, работающих в сети Интернет. Таким образом, знакомство с языком C++ может служить базой для изучения других современных языков.
Задача №1(9)
Текст задачи: Напишите программу , переводящую полярные координаты r,
f точек на плоскости в декартовы x,y. Декартовы координаты выражаются через полярные по формулам:
x=r*cos(f) y=sin(f)
Алгоритм решения данной задачи: Вводим полярные координаты r и f, затем подставляем их в приложенные формулы, вычисляем. Полученный результат выводим на экран.
Программный код:
#include<iostream.h> // Директива препроцессора
#include<conio.h> // Для задержки экрана getch()
#include<math.h> // Вызов математической библиотеки
int main() // Функция main
{ // Начало функции main
int x,y,r,f; // Объявление переменных
cout<<"Vvedite polarnie koordinati f,p\n";//Приглашение к . // вводу
cin>>f>>r; // Ввод с клавиатуры координат
x=r*cos(f); // Вычисление X
y=sin(f); // Вычисление У
cout<<"\n x="<<x<<" y="<<y; // Вывод результата на экран
getch(); // Задержка
return 0;
} // Конец функции main
Пример работы программы:
Задача №2(13)
Текст задачи Пусть в банке взята в кредит на 1 год сумма P под r процентов годовых. Возврат кредита (основного долга и процентов) производится в конце срока. Рассчитайте сумму, которую должен вернуть заемщик банку.
Алгоритм решения данной задачи: Вводим данные: сумму и процент кредита, вычисляем процент. Прибавляем процент к начальной сумме и выводим на экран сумму возврата.
Программный код:
#include<iostream.h> // Директива препроцессора
#include<math.h>
int main() // Заголовок функциии main
{ // Начало функкции main
double p,r,s; // Объявление переменных
cout<<"Vvedite summu kredita i procent "; // Пригрлашение к . // вводу
cin>>p>>r; // Ввод с клавиатуры
s=p+(p/100)*r; // Вычисление суммы возврата
cout<<"Summa vozvrata ravna "<<s; //Вывод на экран результата
cin.get();
return 0;
} // Завершение функции main
Результат работы программы:
Условный оператор
Условный оператор записывается в виде:
If(выр)
Инструкция1
Else
Инструкция2
Причем часть else может отсутствовать. Сначала вычисляются выражение выр. Если оно истинно(не нуль), то выполняется инструкция1, если выр ложно (нуль) и есть часть else, выполняется инструкция2.
Если имеется несколько вложенных условных операторов, то else-часть связывается с ближайшей if-частью. Например, во фрагменте
If(n>0)
If(a>b)
z=a;
else
z=b;
elsе относится к внутреннему if.
Для организации выбора одного из многих вариантов можно записывать вложенные условные операторы в виде:
If(выр1)
Инструкция1
else if(выр2)
Инструкция2
else if(выр3)
Инструкция3
else
Инструкция4
Как только встретится истинное выражение, выполняется соответствующая инструкция, и проверки завершаются. Последняя инструкция4 выполняется, если ни одно выражение не будет истинным.
Задача №3(18)
Текст задачи: Напишите программу, которая вводит целое число и проверяет, является оно четным или нечетным.
Алгоритм решения данной задачи:
Вводим любое целое число, вычисляем остаток от деления этого числа на 2, затем сравниваем остаток с нулём, если истинно то выводим на экран, что число чётное, иначе выводим на экран, что число не чётное.
Программный код:
#include<iostream.h> // Директива препроцессора
int main() // Заголовок функции main
{ // Начало функции main
int o, a; //
cout << "Введите число "; // Приглашение к вводу
cin >> a; //Ввод с клавиатуры
o = a % 2; // Вычисление остатка
if (o == 0) // Сравнение остатка с нулём
cout<<" Число четное "; // Истина(иструкция)
else
cout<<" Число не четное "; // Ложь(инструкция)
cin.get();
return 0;
} // Завершение функции main
Результат работы программы:
Цикл с предусловием while.
Данный цикл записывается в виде:
while(выр)
инструкция // Тело цикла
Сначала вычисляется выражение выр. Если оно истинно (не нуль), выполняется инструкция и снова вчисляется выр. Повторения цикла завершаются, когда выр станет ложным (нулем).
Инструкция, выполняемая в цикле, называется телом цикла.
Так как условие повторения проверяется до выполнения цикла, данный цикл называется циклом с предусловием.
Тело цикла может не выполниться ни раза, если выр окажется ложным при первом его вычислении.
Задача №4(31)
Текст задачи:Напишите программу, определяющую k-количество цифр в десятичной записи целого неотрицательного числа.
Алгоритм: Вводим число, сравниваем его с нулем. Если оно меньше нуля, то выдаем сообщение о том, что требуется положительное число и завершаем работу программы. Если же число положительное, создаем счетчик s, который будет считать количество цифр, создаем цикл while с условием n/10>0. В этом цикле выполняем деление на 10 числа n и прибавляем единицу к счетчику. По окончании работы цикла выводим на экран получившееся в счетчике.
Программный код:
#include<iostream.h> // Директива препроцессора
#include<conio.h> // Для getch()
#include<math.h>
int main()
{
int s,n; // Объявление пременных
cout<<"Введите число n"; // Приглашение к вводу
cin>>n; // Ввод с клавиатуры
if (n<0) { // Условный оператор
cout<<"Требуется положительное число";
getch();
return 1;
}
s=0; // Зануление счетчика
while (n/10>0) { // Цикл while
n=n/10; //
s++; // Тело цикла
} //
s++;
cout<<"Количество цифр ="<<s; // Вывод результата
getch();
cin.get();
return 0;
} // Завершение функции main
Результат работы программы:
Цикл for
Конструкция цикла for имеет вид:
For(выр1; выр2; выр3)
Инструкция
Любое из трех выражений в скобках может отсутствовать, но точки с запятой опускать нельзя. Если отсутствует выр2, то оно считается истинным. Этот цикл эквивалентен конструкции
Выр1;
While (выр2){
Инструкция
Выр3;
}
Выражение выр1 вычисляется единственный раз перед началом работы цикла. Условием повторения цикла является истинность выр2. После выполнения инструкции в теле цикла вычисляется выр3.
Цикл for можно рассматривать как цикл с параметром, обеспечивающий заданное число повторений, например, цикл
for(i=0; i<n; i++)
………
повторяется n раз. Начальное значение для I равно 0, после каждого выполнения тела цикла I увеличивается на 1 за счет выражения i++. Таким образом, I пробегает последовательность значений: 0,1,2,3…,n-1,n. После завершения работы цикла его параметр I сохраняет последнее полученное значение i=n, которое можно использовать в дальнейших вычислениях
Задача №5(40)
Текст задачи: Дана последовательность целых чисел. Определить количество чисел в наиболее длинной подпоследовательности из подряд идущих нулей.
Алгоритм: Заводим 2 счетчика, локальный и глобальный, зануляем их. Задаем последовательность целых чисел (a(n)) , затем в цикле for проходим по массиву. Если a[i] ==0, то зануляем локальный счетчик, и пока a[i]==0 и i<n, прибавляем к локальному счетчику 1. Сравниваем локальный счетчик с глобальным, если значение глобального счетчика меньше чем у локального, то присваиваем ему значение локального счетчика. Продолжаем цикл.Выводим конечное значение глобального счетчика на экран.
Программный код:
#include<iostream.h> // директива препроцессора
#include<conio.h> // директива препроцесора
int main() // Заголовок функции main
{ // Начало функции main
int a[15],i,loc,glob; // Объявление переменных
loc=0; // Зануляем локальный счетчик
glob=0; // Зануляем глобальный счетчик
for(i=1;i<15;i++) { // Цикл for
cout<<"\n‚Введите а ["<<i<<"]="; // тело цикла
cin>>a[i]; //
} //
Clrscr(); // очистка экрана
for(i=1;i<15;i++) { //
cout<<"\na["<<i<<"]="<<a[i]; //печать массива на экран
} //
for(i=1;i<15;i++){
if(a[i]==0) { //сравнение элемента массива с нулем
loc=0; //зануление локального счетчика
while(a[i]==0&&i<15){ // Цикл while
loc++; // Увеличение локального счетчика на 1
i++;
} // Заверешение цикла while
} // Завершение if
if(loc>glob){ // Сравнение локального и глобального счетчиков
glob=loc;
}
}
cout<<"\n Количество нулей в наибольшей последовательности ="<<glob;
getch();
return 0;
}
Не нашли, что искали? Воспользуйтесь поиском по сайту:
©2015 - 2024 stydopedia.ru Все материалы защищены законодательством РФ.
|