NetNado
  Найти на сайте:

Учащимся

Учителям



Задача. Переприсвоить значения 2-х переменных

Уровень B

Стандартные алгоритмы


Задача. Переприсвоить значения 2-х переменных.

Даны значения X, Y. Поменять значения переменных X и Y {с использованием 3-ей переменной}. Пусть X:=5; Y:=10; {новой переменной Z присвоим значение одной из переменных, например X, теперь переменной X можно присвоить значение Y, а переменной Y значение переменной Z}
Пример 1.1. Алгоритм, запрашивающий имя и затем приветствущий его обладателя.

Тест


Данные

Результат

Имя ="Ольга"

"Привет, Ольга !"


Школьный АЯ

алг Знакомство (арг лит Имя, рез лит t)

нач

вывод "Как тебя зовут?"

ввод Имя

t := "Привет, " + Имя + "!" {"+" — операция сцепки}

вывод t

кон

Turbo Pascal

Program Hallo;

Var Name: String; {Описание переменной Name строкового типа}

BEGIN

Write(‘Kaк тебя зовут ?’); {Вывод на экран текста вопроса}

ReadLn (Name); {Ввод с клавиатуры имени}

Writeln (‘Привет,’, Name, ‘!’); {Вывод на экран приветствия}

ReadLn

END.

Здесь последний оператор ReadLn позволяет видеть на экране результаты работы программы, пока не будет нажата клавиша

Результаты работы Pascal-программы

Как тебя зовут ? Ольга < Enter >

Привет, Ольга!

Комментарии



program с этого слова начинается любая программа на Паскале. После слова program указывается название программы.

begin и end. между этими словами находится "тело программы", то есть код который будет выполняться.

Команды writeln() и write() применяется для вывода на экран монитора, либо на другое устройство вывода (принтер, диск и др.), первая команда, в отличие от второй, выводит строку с символом перевода строки. В кавычках расположено сообщение, которое по выполнению программы будет выведено на устройство вывода. Знак ";" обозначает конец команды, или точнее является разделителем устанавливаемым между командами.

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

Проблема



Необходимо вычислить значения следующих выражений.

sin x

cos x

тангенс x

квадратный корень из х

возвести х в степень у

вычислить экспоненту степени х

вычислить натуральный логарифм от х

 

 

Решение



Используем для расчетов переменные.

programm Calc;

var x, y : Real;

begin

x := 5;

y := 2;

writeln(sin(x));

writeln(cos(x));

writeln(sin(x)/cos(x));

writeln(sqrt(x));

writeln(exp(y*ln(x)));

writeln(exp(x));

writeln(ln(x));

end.

 

Комментарии



Как вы наверное успели заметить ничего сложного, очень напоминает привычные математические функции. Исключение, разве что, возведение в степень. Паскаль не имеет функции возведения числа в степень, но это функция, как вы успели заметить, реализуется с помощью комбинации функций логарифма и экспоненты. Вычисление тригонометрических функций происходит в радианах. Для перевода радиан в градусы воспользуйтесь константой числом Пи. Перевод радиан в градусы известный вам из курса математики будет выглядеть так:

x_grad = x * 180 / pi;

Перевод градусов в радианы:

x = x_grad * pi / 180;

 Для того чтобы выводимый результат смотрелся более наглядно используйте следующий формат записи: writeln(sin(x):5:2); дословно это означает: "вывести на экран синус числа х в формате из 5 символов из них 2 знака после запятой".

Другие полезные функции для работы с числовыми значениями.

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

 

Проблема



Необходимо вычислить значения следующих выражений.

модуль x

найти целую часть вещественного числа x

получить случайное число в диапазоне от 0 до х

 

Решение



program funcs;

var x, m, i, r : Real;

p : Integer;

begin

x := -5.234;

m := abs(x);

writeln('Модуль: ', m );

i := int(x);

writeln('Целая часть: ', i);

p:=100;

r:=random(p);

writeln('Случайное число: ', r:7:3);

end.

Комментарии



В отличие от привычной записи вещественного числа 5,234 в большинстве языков программирования для отделения дробной части числа используется "." (точка): 5.234.

 

Пример 1.2. Определить объём и площадь боковой поверхности цилиндра с заданными радиусом основания R и высотой Н.

Тест


Данные

Результат

R = 1

Н = 1

V = 3.14

S = 6.28

Школьный АЯ

алг Цилиндр (арг вещ R, Н, рез вещ V, S)

нач вещ Pi

Pi := 3.14

V:= Pi * R**2 * H

S:= 2 * Pi * R * H

кон
Turbo Pascal

Program Cylinder;

Uses Crt; {Подключение библиотеки Crt}

Var R, H, V, S : real;

BEGIN

CIrScr; {Вызов из библиотеки Crt процедуры очистки экрана}

Write (‘Введите высоту цилиндра: ‘); ReadLn (H);

Write (‘Введите радиус основания: ‘); ReadLn(R);

V := Pi * R * R * H; S := 2 * Pi * R * H; WriteLn;

Writelп (‘Объем цилиндра = ‘, V : 5 : 2); {Здесь 5 — общее количество позиций, занимаемых переменной V при выводе, а 2 — количество позиций в дробной части значения V}

Writeln (‘Площадь боковой поверхности = ‘, S : 5 : 2);

ReadLn

END.
Пример 1.3. Найти произведение цифр заданного целого четырехзначного числа.

Система тестов


Номер теста

Проверяемый случай

Число

Результат

1

Число положительное

2314

Р = 24

2

Число отрицательное

-1245

Р = 40

Школьный АЯ

алг Произведение цифр (арг цел Num. рез цел Р)

нач цел i, j, k, I

Num := abs(Num)

I:=div(Num, 1000)

j := mod(div(Num, 100), 10)

k := mod(div(Num, 10), 10) I:=mod(Num, 10) P := i * j * k * I;

KOH

abs — абсолютная величина

i — первая цифра

div — частное от деления с остатком

j — вторая цифра

mod — остаток от деления с остатком

k — третья цифра

I — четвертая цифра



Turbo Pascal

Program DigitsProduct;

Uses Crt;

Var Number, {заданное число}

i, j, k, L, {цифры числа} Р : Integer; {произведение цифр}

BEGIN

CirScr;

Write( ‘Введите четырехзначное число: ‘ ); ReadLn(Number);

Write( ‘Цифры числа ‘ , Number ); Number:=Abs(Number);

i := Number div 1000; {первая цифра}Write(i:3);

j := Number div 100 mod 10; Write(j:3); {вторая цифра}

k := Number div 10 mod 10; Write(k:3); {третья цифра}

L := Number mod 10; WriteLn(L:3); {четвертая цифр}

Р := i * j * k * L; WriteLn( 'Ответ: произведение цифр равно ' , Р );

ReadLn

END.

страница 1


скачать

Другие похожие работы: