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; Мы поможем в написании вашей работы!

Поделиться с друзьями:






Мы поможем в написании ваших работ!