русс | укр

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

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

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

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


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

Решение


Дата добавления: 2015-06-12; просмотров: 2579; Нарушение авторских прав


Условие задачи перепишем следующим образом:

а:=а2, b:=b2, c:=c2, если а≤b≤с

а:=с, b:=с, если а>b>с

а:=-а, b:=-b, с:=-с − в остальных случаях.

Program Example_20;

Var a,b,c: Integer;

Begin

Writeln('Введите числа а, b, с');

Readln(a,b,с);

If (a<=b) and (b<=c)

ThenBegin

a:=sqr(a); b:=sqr(b); c:=sqr(c)

End

Else If (a>b) and (b>c)

ThenBegin a:=c; b:=c End

ElseBegin a:=-a; b:=-b; c:=-cEnd;

Writeln(a:3,b:3,c:3);

Readln

End.

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

Задание

В приведенной выше программе изменим условный оператор следующим образом:

If (a<=b) and (b<=c) Then

Begin

a:=sqr(a); b:=sqr(b); c:==sqr(c)

If (a>b) and (b>c) Then

Begin c:=a; b:=aEnd

ElseBegin a:=-a; b:=-b; c:=-cEnd;

End;

Как изменится выполнение данной программы? Сформулируйте условие задачи, которую теперь решает данная программа.

 

Решение задач

 

Задача 1

Написать программу, которая определяет, принадлежит ли точка х отрезку [a,b].

 

Program Example_21;

{определение принадлежности точки заданному

отрезку}

var a,b,x: real;

begin

writeln('Введите значение

переменной х');

readln(x);

writeln('Введите значения границ

отрезка');

readln(a,b);

if (x<a) or (x>b) then

writeln ('точка не принадлежит

отрезку)

else writeln ('точка принадлежит

отрезку');

end.

 

Задача 2

Точка плоскости задана своими координатами (x,y). Написать программу, определяющую, принадлежит ли она окружности радиуса 4 с центром в точке (2,2).



 

Program Example_22;

Var x, y: real;

begin

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

readln(x,y);

if (x-2)*(x-2)+(y-2)*(y-2)<=16

then writeln('точка принадлежит

окружности')

else writeln('точка не принадлежит

окружности’)

end.

 

Задача 3

Написать программу, вычисляющую значение функции y(x) для заданного х.

 

210, пр и х≤10,

y(x)=

x3 , при x>10.

 

Program Example_23;

{вычисление значения функции y(x)}

var x,y: real;

begin

writeln('Введите значение x');

readln(x);

if x<=10 then y:=210 else y:=x*x*x;

writeln('y(', x,')=',y);

end.

 

Задача 4

Написать программу вычисления значения функции y(x) для заданного x.

x2 , при x>5,

y(x)= 17x-1, при –7≤x≤5,

25, при x≤-7

Program Example_24;

{вычислить значение функции};

var x,y: real;

begin

writeln('Введите значение x');

readln(x);

if x>5 then y:=x*x

else if x>-7 then y:=25

else y:=17*x-1;

writeln('y(',x,')=',y);

end.

Задача 5

Написать программу определения наименьшего из трех чисел.

 

Program Example_25;

{определение наименьшего из трех чисел}

var a,b,c, min: real;

begin

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

readln(a,b,c);

min:=a;

if b<min then min:=b;

if c<min then min:=c;

writeln('Наименьшее число= ',min);

end.

Задача 6

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

 

Program Example_26;

var a,b,x,y: real;

begin

writeln('Введите два числа');

readln(a,b);

if a=b then begin x:=a; y:=b end;

if a>b then begin x:=b*b; y:=a end

else begin x:=a*a; y:=b end;

writeln(x,' ', y);

end.

 

Задача 7

Даны три числа x, y, z. Написать программу, в результате выполнения которой числа удвоятся, если x≤y≤z, и будут заменены на их абсолютные величины в противном случае.

 

Program Example_27;

var x,y,z: real;

begin

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

readln(x,y,z);

if (x<=y) and (y<=z) then

begin

x:=2*x;

y:=2*y;

z:=2*z

end

else

begin

x:=abs(x);

y:=abs(y);

z:=abs(z);

end;

writeln (x, ' ', y, ' ', z);

end.

 

Задача 8

Написать программу решения квадратного уравнения вида ax2+bx+c=0.

 

Program Example_28;

var a, b, c, d, x1, x2, x: real;

begin

writeln('Введите коэффициенты квадратного

уравнения’);

readln(a,b,c);

d:=b*b-4*a*c;

if d>0 then

begin

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

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

writeln('уравнение имеет два корня:

x1=',x1, 'и x2=',x2);

end

else if d=0 then

begin

x:=(-b)/(2*a);

writeln('Уравнение имеет один

корень x=',x);

end

else

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

readln;

end.

Задача 9

Определить по номеру года, является ли он високосным. Пример выдачи результата:

2000 – високосный год

1900 – невисокосный год.

Примечание. Год является високосным тогда и только тогда, когда его номер делится на 4 или, если номер года оканчивается на два ноля, − 400.

 

Program Example_29;

var n: integer;

begin

writeln('Введите год:');

readln(n);

if n mod 100=0 then

begin

if n mod 400=0 then

writeln(n,'- високосный год')

else writeln(n, '-невисокосный

год’);

end

else

begin

if n mod 4=0 then

writeln(n, '-високосный год')

else

writeln(n, '-невисокосный год');

end;

readln

end.

Задача 10

Даны три неравных числа a, b, c. Вычислить и вывести значение z, равное квадрату большего из них.

 

Program Example_30;

var a, b, c, z: real;

begin

wtiteln('введите 3 числа');

readln(a, b, c);

if a>b then z:=a

else z:=b;

if c>z then z:=c;

z:=sqr (z);

writeln(‘квадрат максимального числа

z=’,z);

readln;

end.

 

§14. Цикл с параметром

 

Оператор цикла с параметром:

For <параметр>:= А То В Do

<тело цикла>;

For <параметр>:=А Downto В Do

<тело цикла>;

где А − начальное значение параметра, В − конечное значение параметра.

Оператор цикла с параметром применяют тогда, когда заранее известно число повторений одной и той же последовательности операторов.

Начальное и конечное значения параметра цикла могут быть представлены константами, переменными или арифметическими выражениями,

Рассмотрим, как выполняется оператор цикла с параметром вида

For <параметр>:=А То В Do

<тело цикла>

Сначала вычисляются значения выражений А и В. Если А<В, то <параметр> последовательно принимает значения, равные А, А+1,..., В-1, В и для каждого из этих значений выполняется <тело цикла>. Если А>В, то <тело цикла> не выполняется ни разу.

Оператор цикла с параметром

For <параметр>:=А Downto В Do

<тело цикла>

выполняется аналогичным образом, но значение <параметра> изменяется с шагом, равным -1.

Если <тело цикла> состоит из нескольких операторов, то операторы тела цикла заключаются в операторные скобкиBegin-End.

 

Пример 1

Составить программу вычисления значения выражения у=((...(202-192)2-182)2-...-12)2.

Решение:

В данном случае целесообразно организовать цикл с параметром, изменяющимся от 19 до 1, то есть шаг изменения параметра равен -1.

Обозначим через у очередное значение квадрата числа, а через n − параметр цикла.

ProgramExample_31;

Varу, n: Integer;

Begin

y:=sqr(20);

For n:=19 Downto 1 Do y:=sqr(y-sqr(n));

Writeln('Значение выражения равно');

Writeln(у);

End.

Пример 2

Из чисел от 10 до 99 вывести те, сумма цифр которых равна s (0<n<18).

Обозначим через k очередное число, p1 − старшую цифру числа k, р2 − младшую цифру числа k, s − сумму цифр числа k. Число k будем печатать только в том случае, когда сумма р1 и р2 будет равна s.

Program Example_32;

Var k,n,p1,p2,s:Integer;

Begin

Writeln('введите целое число ');

Readln(n); {вводим целое число}

For k:=10 To 99 Do

{для (For) k от 10 до(То) 99 делать(Do)}

Begin

p1:=k div 10; {выделяем старшую цифру}

p2:=k mod 10; {выделяем младшую цифру}

s:=p1+p2; {находим сумму цифр}

If s=n Then Writeln(k);

{если сумма равна n, то выводим k}

End;

Readln;

End.

Пример 3

Следующая программа предназначена для вывода таблицы соответствия между температурными шкалами Цельсия и Фаренгейта в интервали температур от точки замерзания воды до точки ее кипения. Температурная шкала Фаренгейта была предложена немецким физиком Габриэлем Фаренгейтом и используется в настоящее время в ряде англоязычных стран. В этой шкале при стандартном атмосферном давлении температура замерзания воды равна 320F, а температура кипения составляет 2120F. В более привычной для нас шкале Цельсия аналогичными опорными точками являются соответственно 00С и 1000С. Эти значения и используются для пересчета одних температур в другие. Нетрудно проверить, что формула для пересчета имеет вид: tf=9/5*tc+32, где tf − температура по Фаренгейту, а tc − температура по Цельсию.

 

program Example_33;

var i, Celsius, Fahrenheit: Word;

begin

Writeln ('Таблица соответствия между

температурными шкалами',);

Writeln (' Цельсия и Фаренгейта');

for i:=0 to 20 do

begin

Celsius:=5*i;

Fahrenheit:=32+Celsius*9 div 5;

Write(' C=' , Celsius);

Write(' F=' , Fahrenheit);

Writeln;

end;

Writeln(' Нажмите <Enter>');

Readln;

end.

 

§15. Работа с окнами.

Метод пошагового выполнения программ

Каждый файл располагается в своем окне. Можно открывать любое количество окон, но активным является только одно окно, в котором находится курсор. Активное окно находится над всеми другими окнами. Чтобы сделать окно с номером N активным, необходимо нажать комбинацию клавиш [Alt] и номер окна (клавишу с цифрой n).

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

Чтобы посмотреть список открытых окон, можно воспользоваться комбинацией клавиш [Alt^0]или командойList менюWindow.

Для закрытия окна можно воспользоваться командойClose менюWindow (или комбинацией клавиш [Alt^F3]. Для закрытия всех окон нужно выбрать командуClose all менюWindow.

При выборе пунктаSize/Move менюWindowограничивающие линии окна меняют цвет. В это время с помощью клавиш управления курсором и клавиши [Shift] можно изменять размеры окна, без нажатия клавиши [Shift] можно изменять положение окна на экране. После выбора нужного размера и положения нажмите клавишу [Enter]. Выбор командыZoom увеличивает размеры активного окна до максимального.

При составлении программ нередко возникает ситуация, когда программа работает не так, как предполагает программист. В этом случае требуется проследить выполнение программы по шагам. В среде Турбо Паскаль есть такая возможность. Для выполнения программы в пошаговом режиме требуется выполнить команду Step Over менюRun или нажать функциональную клавишу [F8].

Примечание. Прежде чем проводить пошаговую отлад­ку программы, необходимо убедиться, что опцияOptions/Debugger/Integrated активизирована.

Чтобы проследить за выполнением программы, нужно знать, как изменяются значения переменных. Активизируйте окноWatches, выполнив командуWatch меню Debug. Чтобы ввести в окноWatches какую-либо переменную, воспользуйтесь комбинацией клавиш [Ctrl^F7] (или выполнив командуAdd Watch меню Debug), после чего откроется диалоговое окноAdd Watch, в которое необходимо ввести имя переменной.

Примечание. Чтобы облегчить процесс ввода переменных в окно Watches, можно перед нажатием комбинации клавиш [Ctrl^F7]установить курсор имени переменной, которую вы хотите ввести.

Для удаления переменной из окнаWatches войдите в окноWatches, с помощью клавиш управления курсором выберите нужную переменную и нажмите клавишу [DELETE].

Иногда в процессе отладки возникает необходимость отладить в пошаговом режиме не всю программу, а лишь ее часть. В этом случае можно воспользоваться командой Go To Cursor меню Run (или просто нажать клавишу [F4]), предварительно установив курсор на так называемую строку останова (строка, до которой хотим выполнить программу). Программа будет выполнена до этой строки, а далее вы сможете выполнять программу в пошаговом режиме либо снова воспользоваться командой Go To Cursor и выполнить программу до вновь выбранной строки останова.

Кроме того, можно установить в некоторой строке так называемую точку останова (можно установить несколько точек останова). Программа будет выполняться до тех пор, пока не достигнет точки останова. Чтобы установить точку останова, переместите курсор в нужную строку и нажмите комбинацию клавиш [Ctrl^F8](или выполните командуAdd breakpoint меню Debug), соответствующая строка будет отмечена подсветкой. После повторного нажатия [Ctrl^F8] точка останова снимается.

Какими свойствами обладает точка останова? Активизируйте командуBreakpoint менюDebug.Появится таблица с указанием имени файла, номера строки, в которой находится точка останова, здесь же можно указать условие, выполнение которого будет приводить к прерыванию работы программы, или количество проходов контрольной точки (после выполнения которых произойдет останов). Загрузите любой файл, установите точку останова на интересующей Вас строке и нажмите клавишуEdit. Запустите программу.

 

§16. Решение задач с использованием

цикла с параметром



<== предыдущая лекция | следующая лекция ==>
Решение | Задача 1


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


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

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

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


 


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

 
 

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

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