Программирование разветвляющихся алгоритмов (оператор if). 


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



ЗНАЕТЕ ЛИ ВЫ?

Программирование разветвляющихся алгоритмов (оператор if).



Условный оператор if аналогичен условным операторам других языков програм­мирования и может использоваться в сокращенной и полной формах, которым соответствуют схемы:

if (условие) оператор;

if (условие) оператор_1; else оператор_2;

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

В полной форме условного оператора при ненулевом значении выражения-условия выполняется оператор_1 с последующим переходом к следующему оператору программы, а при нулевом значении выражения-условия выполняется оператор_2 с переходом к следующему оператору программы.

 

 

Задача 10. Ввести трёхзначное число а и определить, делится ли оно без остатка на сумму своих цифр. Результат вывести на экран.

#include <iostream.h>

#include <conio.h>

#include <math.h>

int main()

{

int a, z1, z2, z3;

cout<<"Введи трёхзначное число ";

cin>>a; //Ввод числа

z3=a%10; // последняя цифра

z1=a/100; // первая цифра

z2=a/10%10; // средняя цифра

if (a%(z1+z2+z3)==0)

cout<<"Результат деления = "<<a/(z1+z2+z3);

Else

cout<<"Не делится";

getch();

return 0;

}

Задача 11. Приведем более представительный пример. Слелующая программа распознает, какая из клавиш была нажата: латинская или русская буква, или цифра).

// Программа отлажена в Visual Studio 2008

// Raspozn_Bukw.cpp: Распознаватель букв и цифр

// в частности - распознает русские и выводит их

#include "stdafx.h"

#include <iostream>

#include <conio.h>

using namespace std;

int main()

{ unsigned char ch;

wcout.imbue (locale("rus_rus.866"));

m1:

{

wcout<<L"\nВведи символ "; ch=_getch();

if(ch >= '0' && ch <= '9')

wcout<<(char)ch<<L"-Это цифра"<<endl;

else if(ch >= 'A' && ch <= 'Z' ||ch >= 'a' && ch <= 'z')

wcout<<(char)ch<<L"-Это латинская буква"<<endl;

else if(ch >= 128 && ch <= 159 // А..Я

|| ch >= 160 && ch <= 175 // а..п

|| ch >= 224 && ch <= 241) // р..ё

wcout<<(char)ch<<L"-Это русская буква"<<endl;

else wcout<<(char)ch<<L"Не знаю..."<<endl;

wcout<<L"\nПродолжать(y/n)?"; ch=_getch();

}

if(ch!= 'n' && ch!= 'N') goto m1;

return 0;

}

 

 

Задача 12. Врачи советуют контролировать собственный вес Вашего тела, руководствуясь значе­ни­ем так называемого индекса массы: k =, где m — вес тела в кг, h — рост в метрах. Если k <= 27, то всё в норме; если 27 < k <= 30, то имеет место ожирение; если же k > 30, то требуется лечение от ожирения. Составить программу, которая вводит по запросу Ваш вес и рост, а затем выводит на экран соответствующий результат тестирования. Ввод и вывод в стиле языка С.

#include <stdi­o.h>

#include <conio.h>

int main()

{

float m,h,k;

m1: clrscr();

printf("введи свой вес в кг и рост в м ");

scanf("%f %f",&m,&h);

if (m<=0 || h<=0)

{

printf("не шути\n");

gotoxy(10,23);

printf("Для продолжения нажать Enter");

getch();

goto m1;

}

k=m/(h*h);

if (k<27)

printf("%f - норма\n",k);

// почему без else плохо?

Else

if (k>=27 && k<30)

printf("%f-ожирение\n",k);

Else

//if(k>=30)

printf("%f-надо лечиться\n",k);

gotoxy(10,23);

printf("Для продолжения нажать Enter");

getch(); return 0;

}

 

Задача 13. Ввести координаты некоторой точки (x,y). Выяснить и сообщить, попадает ли она внутрь правой полуокружности круга радиуса R=3 с центром в начале координат

#include <conio.h>

#include <iostream.h>

void main()

{

float x,y,R;

clrscr();

cout<<"Введи x "; cin>>x;

cout<<"Введи y "; cin>>y;

R=3; //радиус

if (x >= 0 && sqrt(x*x + y*y) <= R)

cout<<" Точка ("<<x<<","<<y<<")"<<" в полукруге"<<endl;

Else

cout<<" Точка ("<<x<<","<<y<<")"<<" вне полукруга"<<endl;

getch();

}

 

Задача 14. Значения переменных a, b и c поменять местами так, чтобы выполнялось соотношение a≤ b ≤ c.

 

// Программа отлажена в Visual Studio 2008

// po_vozr2 расположить a, b, c по возрастанию

#include<conio.h>

#include <iostream>

using namespace std;

 

int main()

{

int r, a=9, b=7, c=3;

if (a>b)

{ r=a; a=b; b=r;

cout<<a<<b<<c<<endl;

}

if (b>c)

{ r=b; b=c; c=r;

cout<<a<<b<<c<<endl;

}

if (a>b)

{ r=a; a=b; b=r;

cout<<a<<b<<c<<endl;

}

getch(); return 0;

}

 

Задача 15. Вычислить и вывести на экран последовательность из М чисел Фибоначчи: 1, 1, 2, 3, 5, 8, 13, 21,... (первые два числа равны 1, а каждое следующее равно сумме двух предыдущих). В программе реализован простейший цикл с помощью операторов if и goto.

 

// Программа отлажена в Borland C++ Builder 6

#pragma argsused

#include <iostream.h>

#include <stdio.h>

#include <conio.h>

 

#include "d:\\My_C_Builder_6\\rus.h"

 

int main()

{

unsigned long f1,f2,f;

int i, M;

printf(rus("ВВЕДИ M <= 46 "));

scanf("%d",&M);

f1=1; f2=1;

i=3;

metka:

{

f=f1+f2;

printf("%d-e = %ld\n", i, f);

f1=f2; f2=f;

i++;

}

if (i<=M) goto metka;

 

getch(); return 0;

}



Поделиться:


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

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