Int R; // объявляем переменную для хранения остатка
Лабораторная работа №3
Цель работы:
Разбор работы цикла while. Знакомство с функциями.
План лабораторной работы:
1. Цикл while. Синтаксис. Условия работы цикла while.
2. Функции. Объявление и вызов функций.
3. Функция scanf ().
4. Практическое задание.
5. Вывод.
6. Практическое задание для самостоятельной работы.
Цикл While .
Цикл while используется в языке программирования СИ в том случае, когда заранее невозможно определить сколько раз будет необходимо выполнить какую-то операцию, но можно определить условие, при котором это повторение должно заканчиваться.
Такое задание на русском языке может выглядеть так: делай эту работу до тех пор, пока она не будет закончена.
Синтаксис:
While (условие)
{
Блок операторов
}
Цикл while используется в тех случаях, когда количество повторений цикла заранее неизвестно и не может быть вычислено. Он состоит из заголовка и тела цикла.
В заголовке после слова while в круглых скобках записывается условие, при котором цикл продолжает выполняться. Когда это условие нарушается (не выполняется), цикл заканчивается.
В условии можно использовать знаки логических отношений и операций :
> , < - больше, меньше
>= , <= - больше или равно, меньше или равно
== - равно
!= - не равно
Если условие неверно в самом начале, то цикл не выполняется ни разу.
Если условие никогда не становится ложным (неверным), то цикл никогда не заканчивается; в таком случае говорят, что программа «зациклилась» — это серьезная логическая ошибка.
|
|
В языке СИ любое число, не равное нулю, обозначает истинное условие, а ноль — ложное условие (то есть, при следующей записи: while (1) программа зациклится).
На рисунке 1 представлена блок-схема цикла while.
Рис1. Блок-схема цикла while .
Функции.
Функция – это вспомогательная программа (подпрограмма), предназначенная для получения некоторого объекта-результата (например, числа). Она также может выполнять какие-то полезные действия.
Объявление внешней функции.
Функция состоит из заголовка и текста функции, заключенного в фигурные скобки.
В заголовке перед именем функции ставится тип результата (int, float, char) - это означает, что функция возвращает значения указанного типа.
После имени функции в круглых скобках через запятую перечисляются параметры функции, то есть те величины, от которых зависит ее работа.
Для каждого параметра отдельно указывается его тип.
Пример:
#include <stdio.h>
Int abc( int i , int j ); //функция abc с двумя параметрами (целочисленными)
Int main()
{
int a =…; //
int s = abc ( a , b); //объявляем переменную s и присваиваем ей значение, полученное в результате работы функции abc c аргументами, значения которых взяты из переменных a и b .
|
|
printf( «%3d» , s); // выводим s.
printf ( «%3 d » , abc ( a , b )); //запись аналогичная предыдущей строке (при такой записи объявлять и инициализировать переменную s не нужно)
getchar();
return 0;
}
Int nod( int m , int n ) // заголовок функции, в «m» передается значение переменной « a » из функции main , в « n », соответственно, « b ».
{
… // тело функции
Return d ; // возвращаем результат работы в main
}
Замечание. Переменные объявленные и инициализированные в какой-либо функции «работают» ТОЛЬКО В ЭТОЙ функции. Чтобы задействовать переменную с таким же названием в другой функции, необходимо ее заново объявлять и инициализировать.
Scanf ()
Функция scanf() является процедурой ввода общего назначения, считывающей данные из потока stdin. Она может считывать данные всех базовых типов и автоматически конвертировать их в нужный внутренний формат.
Функция scanf () отличается от функции printf () тем, что выполняет ввод, а не вывод данных.
Функция scanf () как и функция printf () включает в себя управляющую строку.
Управляющая строка, состоит из символов трех типов:
· Спецификаторы формата
|
|
· Специальные символы
· Прочие символы (не специальные)
Спецификаторы формата следуют за символом процент и сообщают scanf(), данные какого типа будут считаны следующими. Коды спецификаторов аналогичны printf ().
Пример:
int c;
scanf( "%d" , &c);
scanf _ s ( "% d " ,& c ); // для более безопасного ввода.
Практическое задание.
Написать следующие программы:
1) Найти наибольший общий делитель двух положительных целых чисел.
Задайте два целочисленных значения и расположите их в порядке убывания. Задайте переменную, содержащую значение остатка от деления наибольшего числа на наименьшее.
Используя Алгоритм Эвклида вычислите наибольший общий делитель двух чисел и выведите полученное значение на экран.
На рисунке 1 представлена блок-схема алгоритма Эвклида для поиска наибольшего общего делителя двух положительных чисел.
Два числа записываются в переменные А и В. В случае, если А<B, то, используя вспомогательную переменную С, заменяем значения в А и В. После этого рассчитываем остаток от деления двух чисел. Результат записываем в переменную R. Если остаток равен 0, то выводим на экран B, как наибольший общий делитель. Если же остаток не равен 0, то в переменную А записываем значение переменной В, а в В значение переменной R. Вновь считаем остаток от деления А на В.
|
|
Рис 1. Блок-схема алгоритма Эвклида.
#include <stdio.h>
Int main()
{
int a = 56, b = 21; // задаем два целых числа
int R; // объявляем переменную для хранения остатка
if (a<b)
{
int c = a;
a = b;
b = c;
}
Дата добавления: 2019-11-25; просмотров: 182; Мы поможем в написании вашей работы! |
Мы поможем в написании ваших работ!