Список вывода содержит имена тех переменных, значения которых будут выводиться на экран. Каждому имени переменной в списке вывода должна соответствовать форматная спецификация адекватного типа. 


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



ЗНАЕТЕ ЛИ ВЫ?

Список вывода содержит имена тех переменных, значения которых будут выводиться на экран. Каждому имени переменной в списке вывода должна соответствовать форматная спецификация адекватного типа.



Пример 3.2

int n=200;

float a=17.25, b=21.47;

printf(“n=%d_ _ a=%f_ _ b = %e\n ”, n,a, b);

на экране n=200_ _ a=17.250000_ _ b=2.147000e-01

Управление в форматных спецификациях.

1. Для переменных целого типа (символьных, беззнаковых десятичных, целых, восьмеричных, шестнадцатеричных):

  %[-][h]<тип>

  где [-] - выравнивание записи по левому краю,

[h] - число, определяющее количество позиций под переменную:

%5d                 _ _ 200

 %-5d                      200

2. Для переменных вещественного типа:    

%[-] [h][.t] <тип>

где.t – количество позиций, отводимых под дробную часть:

Пример 3.3

  printf(“a=%5.2f_ _ b=%.3e”, a, b);

На экране: a = 17.25 b = 2.147e-01

Ввод данных с клавиатуры.

scanf(…) – структура оператора для ввода данных аналогична структуре оператора printf(…).

scanf(“управляющая строка”, список указателей);

Оператор ввода читает символы из входного потока информации и интерпретирует их согласно форматной спецификации управляющей строки.

Список ввода - список указателей, которые определяют, где будут располагаться введенные данные, поэтому перед именами переменных списка указателей ставится знак &.

Пример 3.4:  

int k;

float y;

char t;

printf(“Введите значения k, y, t \ n “);

scanf(“%d%f%c”, &k, &y, & t);

Для осуществления ввода, вывода необходимо использовать файл стандартной библиотеки stdio.h.

#include<stdio.h>

Оператор перехода.

Оператор gotoпозволяет реализовать передачу программного управления из одной точки программы в другую.

Форма записи:

goto M;

где: М– метка оператора, обозначается обычным идентификатором, между меткой и помечаемым оператором размещается двоеточие:

lab1: y = 2*x + 1.5;

..........

goto lab1;

Пример 3.5:

#include <stdio.h>

void main()

{

int number =1;

label: printf(“Число: % 2d\n”, number);

number++;

if (number<=10) goto label;

}

 

Условный оператор.

Условный оператор предназначен для проверки заданного условия и выбора выполняемых действий (операторов) в зависимости от истинности (ложности) условия. Имеется 2 формы записи условного оператора:

1.Полная форма:

 if(L) A1; else A2;

где:  

L- некоторое логическое выражение;  

A1, A2 простые или составные операторы.

Оператор работает таким образом, что если проверяемое условие истина, то выполняется оператор А1, оператор А2 пропускается и выполняется оператор, следующий за условным.

Если проверяемое условие ложь, то пропускается оператор А1, выполняется оператор А2, а затем выполняется оператор, следующий за условным, что можно проследить на блок-схеме

 


2.Сокращенная форма:

 if(L) A;

Оператор работает таким образом, что если проверяемое условие истина, то выполняется оператор А и далее выполняется оператор, следующий за условным.

Если проверяемое условие ложь, то пропускается  оператор А, и сразу выполняется оператор, следующий за условным, что можно проследить на блок-схеме

 

Обычно, операторы А1, А2, А являются составными и общая структура оператора будет выглядеть следующим образом

if(выражение)

{оператор1;

оператор n; }

else

{оператор1;

оператор n;

}

 

Условия в операторе if

В условном операторе можно записывать два вида условий:

1 - логические отношения;

2 - логические выражения.

Отношение - два арифметических выражения, связанных знаком отношения. Знаки логических отношений приведены в таблице 3.1.

Таблица 3.1 Знаки логических отношений

Знаки отношений Описание
> больше чем
>= больше или равно
< меньше чем
<= меньше или равно
== равно
!= не равно

Пример 3.6:   if(x1<=x2) t=y*sin(x1)+1.5;

 Логические выражения –два или больше логических отношений объединенных соответствующими операциями:

1. &&- логическое умножение and (и)

2. || - логическое сложение or(или)

3.! – логическое отрицание not (не).

Пример 3.7.

1.Проверить принадлежность числа х отрезку[-2;2]

                                                     

                                                       if(x>=-2 && x<=2)…

 

2.Проверить лежит ли число у за пределами отрезка [0;5] 

                      

                       if(y<0 || y>5)

                          

Логические выражения вычисляются слева направо и, если на каком-то этапе выясняется истинность (ложность) данного выражения, то вычисления прекращаются.

Пример 3.8.

x=2; y=5;

if(x>3&&y<6)…    ложь

 

ложь не выч-ся      

if(x<=4||y>=5)…     истина 

 

истина не выч-ся    

  Вложенные условные операторы.

Внутри каждого условного оператора может быть один или несколько условных операторов.

if (выражение_1) if (выражение_2) оператор_1;

               else оператор_2;

 

В сложных условных операторах else относится к ближайшему if. Если возникает необходимость в изменении такого порядка, то используют фигурные скобки, чтобы указать, к какому if принадлежит else.

if(выражение_1) {if(выражение_2) оператор_1;}

else оператор_2;

Пример 3.9. Задано три числа a, b, c. Найти значение максимального среди них.

Текст программы.

int main ()

{

float a,b,c,max;

printf("задайте значения a,b,c");

scanf("%f%f%f",&a,&b,&c);

if (a>b)max=a; else max=b;

if (c>max) max=c;

printf("\n max=%5.1f",max);

return 0;

}

Пример 3.10 Выполнить вычисления y по одной из формул, в зависимости от введенных значений чисел a, b, x.

sin(a/x),     если x≤a

y =   cos(a+b*x), если  x≥b

a+(b+x)2+√|a|, если a<x<b

Текст программы

#include<stdio.h>

#include<conio.h>

#include<math.h>

int main ()

{

float a,b,x,y;

printf("Задайте значения a,b,x");

scanf("%f%f%f",&a,&b,&x);

if (x<=a) y=sin(a/x);

if (x>=b) y=cos(a+b*x);

if (x>a&&x<b) y=a+(b+x)*(b+x)+sqrt(fabs(a));

printf("\n a=%5.1f b=%5.1f x=%5.1f y=%5.1f",a,b,x,y);

}

Пример 3.11 Выполнить вычисления y по одной из формул при различных значения х, используя оператор перехода и метку.

  √ x -x2, если х>0

y=

     x+√|x|, если х≤0

где х изменяется от –2 до +2 с шагом dx=0,1.

Определить: k-количество положительных у(y>0) и их сумму S.

 

int main()

{

int k=0;

float x=-2, y, s=0;

metka: if (x>0)  y=sqrt(x)-x*x;

           else y= x+sqrt(fabs(x));

printf(“\n %6.2f %6.2f ”, x, y);

if (y>0){

    k++;

    S+=y;

    }

x+=0.1;

if(x<=2) goto metka;

printf (“\n количество Y>0 k=%d\n”,k);

printf(“сумма Y>0 s=%6.2f”,s);

return 0;

}

Контрольные вопросы для самопроверки

1. Какие действия выполняет оператор присваивания?

2. Как выглядят простой, многоместный и совмещенный оператор присваивания?

3. Для чего используется вложенный условный оператор?

4. Как осуществляется вывод результатов на экран?

5. Как выглядит управляющая строка?

6. Какие существуют управляющие символы?

7. Как записывается формат вывода?

8. Как осуществляется ввод данных с клавиатуры?

9. Какую директиву препроцессору надо записать в начале программы, чтобы можно было использовать функции printf (...), или scanf (...)?

10. Когда используется оператор перехода goto?

11. Запишите полную форму записи условного оператора.

12. Запишите сокращенную форму записи условного оператора.



Поделиться:


Последнее изменение этой страницы: 2021-04-04; просмотров: 64; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 3.135.197.201 (0.021 с.)