русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

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


Дата добавления: 2014-11-28; просмотров: 2126; Нарушение авторских прав


Форма записи оператора выбора Case

Для разветвления в программе более чем в 2-х направлениях, можно использовать оператор выбора:

Case <Выражение - ключ выбора> OF <Список выбора> End

Или

Case <Выражение - ключ выбора> OF <Список выбора>

Else <Операторы> End

Ключ выбора - выражение любого порядкового типа;

<Список выбора> -одна или более конструкций вида:

<Константа выбора>: <Оператор>;

<Константа выбора> - выражение того же типа, что и ключ выбора;

Оператор выбора работает следующим образом: вычисляется значение выражения <ключ выбора>, а затем в последовательности операторов <список выбора>отыскивается такой, которому предшествует константа, равная вычисленному значению. Найденный оператор выполняется, после чего оператор выбора завершает работу. Если в списке выбора нет такой константы, то управление передается оператору, стоящему за ключеваым словом Else. Часть Else может отсутствовать и в этом случае оператор выбора завершает свою работу.

Задачи

1. Если точка М(х,у) принадлежит внутренней области треугольника с вершинами А(а,0), В(0,b), О(0,0), то напечатать его площадь, в противном случае его периметр (a>0,b>0).

program zadacha_3;
uses crt;
var
a,b,y,x: integer;
p,s: real;
begin
clrscr;
write ('Введите a ');
readln (a);
write ('Введите b ');
readln (b);
writeln ('введите координату точки x');
readln (x);
writeln ('введите y ');
readln (y);
if (x>=0) and (y>=0) and (y<(-(b/a)*x)+b) then
begin
writeln ('точка с координатами (',x,',',y,') принадлежит области треугольника');
s:=a*b;
write ('s=',s:5:2);
readln;
end
else
begin
writeln ('тоска с координатами (',x,',',y,') не принадлежит области треугольника');
p:=a+b+(sqrt(sqr(a)+sqr(b)));
write ('p=',p:5:2);
end;
readln;
end.



2. Найти сумму корней квадратного уравнения. Если эта сумма положительна и кратна трём, то увеличить коэффициенты a и b в 0.5 раза. Иначе проверить, кратна ли данная сумма произведению коэффициентов этого уравнения. Если уравнение не имеет корней, то вывести соответствующие сообщение.

program zadacha_6;

uses crt;

var

s1,p: integer;

x1,x2,d,s,a,b,c: real;

begin

clrscr;

writeln ('Введите кооффициенты квадратного уравнения');

readln (a,b,c);

d:=sqr(b)-4*a*c;

if d>0 then

begin

x1:=(-b+sqrt(d))/2*a;

x2:=(-b-sqrt(d))/2*a;

s:=x1+x2;

s1:=round(s);

if (s>0) and ((s1 mod 2)= 0) then

begin

a:=a*0.5;

b:=b*0.5;

writeln ('Новое уравнение: ',a:5:2,'x*x+',b:5:2,'x+',c:5:2,'=0');

end

else

begin

p:=round(a*b);

if s1 mod p=0 then

begin

writeln ('Сумма корней кратна произведению коэффициентов') ;

end

else

begin

writeln ('Сумма корней некратная произведению коэффициентов');

end;

end;

end;

if d<0 then

begin

writeln ('Уравнеине не имеет корней');

end;

readln;

end.

3. Составить программу, заменяющую меньшее из трех данных чисел произведением этих чисел

program zadacha_8;

uses crt;

var

min,a,b,c:integer;

begin

clrscr;

writeln('введите число №1 ');

readln(a);

writeln('введите число №2 ');

readln(b);

writeln('введите число №3 ');

readln(c);

if (a < b) and (b < c) then

min:=a;

if (a > b) and (b < c ) then

min:=b;

if (a > b) and (b > c) then

min:=c;

writeln('min=',min);

readln;

min:=a*b*c; {присваиваю min произведение трех чисел}

writeln('min=',min);

readln;

end.

4. Составить программу, определяющую, проходит ли график функции y=x2+2x+2 через точку А(x,y).

program zadacha_10;

uses crt;

var

x,y,x1,y1:real;

begin

clrscr;

writeln ('введите x');

readln (x);

writeln ('введите y');

readln (y);

y1:=x*x+2*x+2;

writeln ('y1= ',y1:2:0);

readln;

If (y=y1) then

writeln (' график проходит через точку А')

else

writeln('график не проходит через точку А');

readln;

end.

5. Даны два числа. Если эти числа кратны некоторому заданному числу, то большее из этих чисел уменьшить в два раза. В противном случае каждое из этих чисел увеличить на сумму их квадратов.

program zadacha_11;

uses crt;

var

a:integer; {первое число}

b:integer; {второе число}

c:integer; {заданное число}

d,d1:real; {уменьшенные числа, если исходные числа кратны зад. числу}

f,f1:integer; {увеличенные числа, если исх. числа не кратны зад. числу}

begin

clrscr;

writeln('введите первое число ');

readln(a);

writeln('введите второе число ');

readln(b);

writeln('введите третье число ');

readln(c);

if (a mod c=0) and (b mod c=0) then {проверяется кратность чисел}

begin

if a > b then

begin

d:=a/2;

writeln('уменьшенное число, если первое число больше второго=',d:2:0);

readln;

end;

if a < b then

begin

d1:=b/2;

writeln('уменьшенное число, если второе число больше первого=',d1:2:0);

readln;

end;

end

else

begin

f:=a+sqr(a+b);

writeln('увеличенное первое число на квадрат чисел=',f:2);

readln;

f1:=b+sqr(a+b);

writeln('увеличенное второе число на квадрат числа=',f1:2);

readln;

end;

end.

 

6. Дано действительное число. Определить что больше sin(x) или cos(x). Если больше cos(x), то данное число увеличить на его квадрат, в противном случаи извлечь квадратный корень из заданного числа (если это возможно, если нет , то вывести на экран соответствующее сообщение). Если величины равны, то найти их произведение и разделить его на абсолютную величину данного числа.

program zadacha_14;

uses crt;

var

x: real;

k: real;

begin

clrscr;

write ('Введите число');

readln (x);

if cos(x)>sin(x) then

begin

k:=x+sqr(x);

end;

if cos(x)0 then

begin

k:=sqrt(x);

end

else

begin

writeln ('Из введённого числа невозможно извлечь квадратный корень');

end;

end;

if cos(x)=sin(x) then

begin

k:=(cos(x)*sin(x))/abs(x);

end;

if k<>0 then

begin

write ('Новое значение величины x=',k:5:2);

end;

readln;

end.

7. Точки на плоскости заданы своими координатами. Определить какая из них находится ближе к началу координат.

program zadacha_15;

uses crt;

var

x1,y1: real; {координаты первой точки}

x2,y2: real; {координаты второй точки}

x3,y3: real; {координаты третей точки}

d1,d2,d3: real; {расстояние от начала координат до каждой точки}

begin

clrscr;

writeln('Введите координаты x1 и y1 первой точки');

readln(x1,y1);

writeln('Введите координаты x2 и y2 первой точки');

readln(x2,y2);

writeln('Введите координаты x3 и y3 первой точки');

readln(x3,y3);

d1:=sqrt(sqr(x1)+sqr(y1));

d2:=sqrt(sqr(x2)+sqr(y2));

d3:=sqrt(sqr(x3)+sqr(y3));

writeln('d1=',d1);

writeln('d2=',d2);

writeln('d3=',d3);

if (d1 < d2) and (d1< d3) then

writeln('Точка с координатами: A(',x1:2:2,';',y1:2:2,') ближе к началу координат');

if (d2 < d1) and (d2 < d3) then

writeln('Точка с координатами: A(',x2:2:2,';',y2:2:2,') ближе к началу координат');

if (d3 < d1) and (d3 < d2) then

writeln('Точка с координатами: A(',x3:2:2,';',y3:2:2,') ближе к началу координат');

readln;

end.

8. Даны вещественные положительные числа a, b, c. Если существует треугольник с такими сторонами, то определить его вид (прямоугольный, остроугольный, тупоугольный).

program zadacha_17;

uses crt;

var

a,b,c:real; {стороны треугольника}

cos1,cos2,cos3:real; {косинусы углов}

begin

clrscr;

writeln('введите первую сторону ');

readln(a);

writeln('введите вторую сторону ');

readln(b);

writeln('введите третью сторону ');

readln(c);

begin

if (a<(b+c)) and (b<(a+c)) and (c<(b+a)) then

begin

writeln('такой треугольник существует ');

readln;

end

else

begin

writeln('такого треугольника не существует ');

readln;

end;

end;

begin

if (a<(b+c)) and (b<(a+c)) and (c<(b+a)) then begin

cos1:=((sqr(a)+sqr(b)-sqr(c))/2*a*b);

writeln('cos1 = ',cos1:2);

readln;

end;

end;

begin

if (a<(b+c)) and (b<(a+c)) and (c<(b+a)) then begin

cos2:=((sqr(c)+sqr(b)-sqr(a))/2*c*b);

writeln('cos2 = ',cos2:2);

readln;

end;

end;

begin

if (a<(b+c)) and (b<(a+c)) and (c<(b+a)) then

begin

cos3:=((sqr(a)+sqr(c)-sqr(b))/2*a*c);

writeln('cos3 = ',cos3:2);

readln;

end;

end;

if ((cos1<0) or (cos2<0) or (cos3<0)) and ((a<(b+c)) and (b<(a+c)) and (c<(b+а)) then

writeln('треугольник тупоугольный ');

readln;

end;

if ((cos1=0) or (cos2=0) or (cos3=0)) and ((a<(b+c)) and (b<(a+c)) and (c<(b+а)) then

writeln('треугольник прямоугольный ');

readln;

end;

if ((cos1>0) and (cos2>0) and (cos3>0)) and ((a<(b+c)) and (b<(a+c)) and (c<(b+a)) then

writeln('треугольник остроугольный ');

readln;

end;

end.

9. Вывести номер координатной плоскости, которой принадлежит точка с заданными координатами (x,y) при условии, что х<>0,y<>0.

program zadacha_18;

uses crt;

Var

x,max,min:integer;

y:integer;

begin

clrscr;

write('Введите x - ');

readln(x);

write('Введите y - ');

readln(y);

begin

if (x<>0) and (y<>0) then

if (x>0) and (y>0) then

begin

writeln('Точка находится в I четверти');

end;

if (x<0) and (y>0) then

begin

writeln('Точка находится во II четверти');

end;

if (x<0) and (y<0) then

begin

writeln('Точка находится в III четверти');

end;

if (x>0) and (y<0) then

begin

writeln('Точка находится в IV четверти');

end;end;

readln;

end.

 

Контрольные вопросы:

1. Определите значение а после выполнения фрагмента программ, если в одном случае a=0, а в другом a=6:

1) if a<>0 then ; a:=2;

2) if a<4 then begin a:=a+2; a:=a+3 end;

3) if a<4 then a:=a+2; a:=a+3;

4) if a<4 then a:=a+2 else a:=a+3;

5) if a<4 then else begin a:=a+2; a:=a+3 end.

2. Может ли в записи программы на Паскале количество ключевых слов else быть больше количества ключевых слов then? А меньше?

3. Являются ли условными операторами следующие последовательности символов:

1) if x<y then x:=0 else y:=0;

2) if x>y then x:=0 else read(y);

3) if x>=y then x:=0;y:=0 else write(y);

4) if a<b then 100 else z:=25;

5) if a=b then begin; c:=3 end else c:=1;

6) if f or false then a:=2*f else a:=c-2;

7) if c<2 or a>2 then read(a) else read(c);

8) if a+b then write('a') else write('b');

9) if a and true then begin c:=1 else c:=2 end;

10) if (1<=x) and (x<=9) then c:=2; else c:=3;

11) if 2*a-3>0 then (a:=0) and (b:=0) and (c:=0);

12) if t<z else a:=4;

13) a:=if c>d then d else c;

4. Объясните, как будут выполняться фрагменты программ:

1) if a<b then a:=b else a:=b;

2) if false then write('a') else write('b');

3) if true then write('a') else write('b');

4) if 2*a<=3*b then a:=a+b-14 else a:=b-14+a;

5) if a<b then a:=b else a:=a;

6) if a>b then a:=a else a:=b;

7) if a mod 2<>3 then a:=a+1;

8) if (a mod 2=1) or (a mod 2 =0) then if a<0 then a:=-a;

9) if a<0 then b:=a else b:=-a.

Замените приведенные фрагменты, где возможно, более короткими операторами Паскаля.

5. Запишите одним условным оператором:

1) if k>5 then c:=1;

if k>5 then d:=2;

if k>5 then e:=3;

if k<=5 then write(c+d);

if k<=5 then write(d+e);

2) if a>b then c:=1;

if a>b then d:=2;

if a<=b then c:=3;

if a<=b then d:=4;

3) if x<y then x:=1 else y:=2;

if x<y then y:=0.5 else x:=1.5;

if x>=y then z:=0.25 else z:=2.25;

if x>=y then d:=5;

4) if a-b<0 then else c:=1;

if a-b<0 then else d:=2;

if a>=b then else c:=3;

if a>=b then else d:=4.

6. Определите, какими будут значения переменных p и d после выполнения операторов:

p:=true; d:=1;

case k mod 10 of

3,2,7,5: d:=k;

1: ;

4,8: begin p:=false; d:=2 end;

9,6: begin p:=false; d:=3 end;

end {of case}

если целая переменная k имеет значение: 1) 6; 2) 235; 3) 71; 4) 100.

 

 



<== предыдущая лекция | следующая лекция ==>
Оператор безусловного перехода | Задачи для самостоятельного решения


Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.

Генерация страницы за: 0.011 сек.