Чайник - модуль 1
Содержание материала
Модуль1. Простые задачи на линейный алгоритм
Задача: Z1.0 Ввести с клавиатуры скорость катера v и скорость течения vt. Какой путь S пройдет катер по течению за t=2 часа?
Program Z;
Const t=2; { объявляется константа t=2}
var v,vt,vp,s: integer;
begin
Write ('Введи v катера и v течения ');
Readln (v, vt);
vp:=v+vt; {находим скорость по течению}
s:=t*vp; {находим расстояние по течению}
Writeln ('Расстояние по теч.=',s); {печать результата}
end.
Измени программу, чтобы время в пути – переменная, а катер плыл против течения.
Предложение от Андрея Вожегова: Известно расстояние, скорость катера и скорость течения. Найти время в пути в часах и минутах
1. Разминка
Z1.1 В магазине предлагают конфеты по N рублей за килограмм. Сколько кг и гр можно купить на M рублей? Оформить программу, M, N ввести с клавиатуры.
Z1.2. Пожарных учат надевать штаны за 23 секунды. Ввести с клавиатуры время в минутах. Напечатать, сколько штанов успеет надеть хорошо обученный пожарный за это время (целое число: штаны - штучная вещь!).
Z1.3 Написать программу, которая меняет местами значения двух переменных a и b, введенных с клавиатуры. Комментарий: чтобы решить эту задачу, используем следующий алгоритм:
1) объявим в программе третью переменную Х;
2) запомним в новой переменной Х значение А;
3) скопируем в А значение из В;
4) скопируем в В число из Х (исходное значение А).
Решение - найди ошибку и исправь
Program Change;
Var a,b,x: integer;
begin
Write ('Введи А и В ');
Readln (a, b);
x:=a;
a:=b;
b:=a;
Writeln('a=', a, ' b=', b);
end.
Z1.4 Что делает эта программа? Оформите программу понятным вводом и выводом.
Program pr;
var
a, b, c, d: longint;
begin
readln(a);
b := a; c := a; d := a;
b := a div 3600;
c := (a mod 3600) div 60;
d := a mod 60;
writeln('',b, ':',c,':',d);
end.
Z1.5 За день машина проезжает n километров. Сколько дней нужно, чтобы проехать маршрут длиной m километров?
2. Функции Pascal
Прочитать стр. 6-9 учебника. Обратить внимание на функцию квадратного корня.
Z1.6 Ввести с клавиатуры длины катетов треугольника. Найти гипотенузу по теореме Пифагора.
3. Случайные числа.
Иногда при решении задач удобно не задавать значения переменным с клавиатуры, а вводить их случайным образом: пусть число выбирает сам компьютер. Для этого следует:
1) включить генератор случайных чисел "Randomize". Он записывается в программе сразу после "begin";
2) выбрать значение для переменной с помощью функции "Random"
а) для дробных чисел из интервала [ X0; X1 ): X:=Random * (X1-X0) + X0;
б) для целых чисел из интервала [ X0; X1 ]: X:=Random(X1-X0) + X0.
3) напечатать полученное число, чтобы знать, что выбрал компьютер: Writeln ('X=', X);
ЗАДАЧА. Когда дядя Петя вышел во двор с ружьем, с 1-ой яблони упало f, а со 2-ой - g соседей. Ввести случайным образом значения для f и g, найти общее количество упавших соседей.
Решение.
Program D;
const x0=1; {х0 и х1 – границы интервала случайных чисел }
x1=10;
Var f, g, v: integer;
begin
Randomize;
f:=Random(x1-x0)+x0; {стандартные формулы для случайного числа}
g:=Random(x1-x0)+x0;
Writeln ('на 1 яблоне ',f,' соседей');
Writeln ('на 2 яблоне ',g,' соседей');
v := f+g;
Writeln ('всего ', v ,' соседей');
end.
Z1.7 Петя получил по математике оценку m, а Вася n. Напечатать полученные оценки.Интересно, а пятерки они когда-нибудь получают?
Z1.8 Общая тетрадь стоит m р., а блокнот на n р. меньше. Сколько стоят общая тетрадь и блокнот вместе? m и n задать случайным образом.
4. Данные символьного типа
До этого мы работали только с числовыми переменными. Данные типа CHAR(1 символ) и STRING(256 символов) позволяют представлять в программах тексты и производить над ними некоторые операции, например, вставлять и удалять отдельные буквы и слова и т.д.
Тип STRING
Program Name;
Var c : string;
Begin
WriteLn( 'Как тебя зовут' );
ReadLn( c );
WriteLn( 'Давай дружить,', c,'!' );
end.
Z1.9 Программа спрашивает имя и год рождения. Обращаясь по имени, выводит количество лет.
Z1.10 Программа спрашивает: Как вас зовут? Как зовут вашего друга? Выводит Имя1+Имя2=ДРУЖБА
Тип CHAR
Все символы, которые могут быть значением переменных типа сhar, собраны в таблицу ASCII (как буквы в алфавит). Каждому символу соответствует уникальный код - число от 0 до 255
Символы имеют коды от 0 до 255.
ORD(w) - возвращает код символа w.
CHR(i) - определяет символ с кодом i.
ЗАДАЧА. Ввести с клавиатуры символ . Напечатать его код
Решение.
Program simvol;
Var x:char;
begin
Write ('введи символ ');
Readln (x);
Writeln ('символ - ',x,' код-',ord(x))
end.
Проведи эксперименты с программой и узнай коды чисел, русских букв.