Персональная страничка
| ||
Предыдущий раздел:
Следующий раздел:
Хотя для наглядности речь в задачах может идти о столбах, шагах или распиливания бревна, полностью аналогичные задачи программистам приходится решать на каждом шагу (при работе с массивами, при вычислении количества шагов в циклах и т.д.) Все выражения, которые вам требуется составить, взяты из реальной программистской практики.
Прорешать данные задачи также полезно в связи с тем, что многие не умеют решать задачи в общем виде, когда вместо конкретных чисел используются буквенные обозначения. Кроме того, большинство выпускников обычных школ плохо представляют себе, что значит думать над задачей. Они могут прилежно заучить правила написания и смысл операторов языка, но когда надо изобрести способ решить задачу с их помощью, не понимают, что же им делать.
В данном случае мы имеем дело с простейшей ситуацией – по сути, требуется придумать программу, состоящую из одной строки. Набор операций дан, требуется их скомбинировать так, чтобы получился требуемый результат. Решение данных задач позволит выработать правильный подход и настрой для работы в ситуации когда «неизвестно что делать».
Используя арифметические операторы (+, -, *, /, div, mod), а также функции round(), trunc() и abs(), составьте арифметические выражения для вычисления следующих величин:
1. n-е четное число (первым считается 2, вторым 4 и т.д.)
2. n-е нечетное число (первое равно 1, второе 3 и т.д.)
3. В очереди стоят n людей, сколько человек находится между i-м и k-м в очереди.
4. Сколько нечетных чисел на отрезке (a, b), если a и b – четные? Если a и b – нечетные? a –четное, b – нечетное?
5. Сколько полных минут и часов содержится в x секундах?
6. В доме 9 этажей, на каждом этаже одного подъезда по 4 квартиры. В каком подъезде, и на каком этаже находится n-я квартира.
7. Старинными русскими денежными единицами являются: 1 рубль – 100 копеек, 1 гривна — 10 копеек, 1 алтын — 3 копейки, 1 полушка — 0,25 копейки. Имеется А копеек. Запишите выражения для представления имеющейся суммы в рублях, гривнах, алтынах и полушках.
8. Стрелка прибора вращается с постоянной скоростью, совершая w оборотов в секунду (не обязательно стрелка прибора, может быть это волчок в игре «Что? Где? Когда?» и т.п.) Угол поворота стрелки в нулевой момент времени примем за 0. Каков будет угол поворота через t секунд?
9. Вы стоите на краю дороги и от вас до ближайшего фонарного столба x метров. Расстояние между столбами y метров. На каком расстоянии от вас находится n-й столб?
10. Та же ситуация, что и в предыдущей задаче. Длина вашего шага z метров. Мимо скольких столбов вы пройдете, сделав n шагов.
11. x – вещественное число. Запишите выражение, позволяющее выделить его дробную часть.
12. x – вещественное число. Запишите выражение, которое округлит его до сотых долей (останется только два знака после запятой).
13. n – целое число. Запишите выражение, позволяющее узнать его последнюю цифру.
14. n – четырехзначное целое число. Запишите выражение, позволяющее узнать его первую цифру.
15. Оператор div в Паскале работает только для целых чисел. Составьте выражение, позволяющее получать целую часть от деления вещественных чисел.
16. Выразите операцию mod через другие арифметические операции.
17. x – вещественное число. Запишите выражение, которое даст +1, если x>0 и -1, если x<0 (при x=0 выражение будет неопределено).
18. n и m – целые числа. Запишите выражение, которое давало бы 0, если n кратно m и 1, если не кратно.
19. От бревна длиной L отпиливают куски длиной x. Сколько кусков максимально удастся отпилить.
20. Бревно длиной L распилили в n местах. Какова средняя длина получившихся кусков?
21. Резиновое кольцо диаметром d разрезали в n местах. Какова средняя длина получившихся кусков?
22. На прямой через равные промежутки располагается n точек. Расстояние от первой до последней равно L. Чему равно расстояние от первой точки до i-й? А от k-й до последней? А от i-й до k-й?
23. Известно, что приближенные формулы для вычисления синуса и косинуса работают тем точнее, чем меньше значение аргумента. Поскольку синус и косинус 2π-периодические функции (sin(x) = sin(x+2πn) , где n – любое целое число), то можно вычисление синуса от любого аргумента привести к вычислению синуса от аргумента, лежащего в диапазоне от 0 до 2π. Запишите формулы, позволяющие:
(а) привести положительный угол x в диапазон от 0 до 2π.
(б) аналогично для отрицательного угла.
24. Пусть дано трехзначное число x (например, 123). Составьте выражения, которые позволят вычислить первую, вторую и третью цифру этого числа (числа 1, 2 и 3 в примере). Для облегчения поиска решения имейте в виду, что для двузначного числа первая цифра дается выражением
d1:=x div 10;
а вторая выражением
d2:=x mod 10;
Следующий раздел:
Предыдущий раздел:
//вариант для 10 задачи
//решил просто добить 9-ую)
program столб;
var
x,y,z:real;
n:integer;
begin
write(‘метров до ближайшего столба — ‘);readln(x);
write(‘расстояние между столбами (в метрах) — ‘);readln(y);
write(‘длинна шага ‘);readln(z);
write(‘узнать расстояния до столба номер — ‘);readln(n);
writeln(‘до ‘,n,’ столба ‘,n*y-(y-x),’ метров, вы дойдете до него через ‘,(n*y-(y-x))/z,’ шагов.’);
end.
//вариант для 11,12 задачи
program столб;
var
x:real;
begin
write(‘введите вещесевенное число: ‘);readln(x);
writeln(‘дробная часть ‘,x-trunc(x));
writeln(‘округлено до сотых ‘,round(x*100)/100);
end.
//вариант для 13 задачи
program столб;
var
x:integer;
begin
write(‘введите целое число: ‘);readln(x);
writeln(‘последня цифра это ‘,x mod 10);
end.
//вариант для 14 задачи
program столб;
var
x:integer;
begin
write(‘введите целое четырехзначное число: ‘);readln(x);
writeln(‘последня цифра это ‘,trunc(x/1000));
end.
//вариант для 15 задачи
program столб;
var
x,y:real;
begin
write(‘введите вещественное число: ‘);readln(x);
write(‘введите вещественное число: ‘);readln(y);
writeln(‘целая часть их частного = ‘,trunc(x/y));
end.
//не знаяю почему, но при вводе чисел 0.6 и 0.2, выводит ответ 2, вместо 3-х.
//вариант для 16 задачи
program МOD;
var
a,b:integer;
begin
writeln(‘введите вещественные числа’);
write(‘a=’); readln(a);
write(‘b=’); readln(b);
writeln(‘операция mod ‘,a mod b);
writeln(‘мой аналог ‘,a-(a div b)*b);
end.
//вариант для 17 задачи
program задача17;
var x: real;
begin
write(‘x=’);readln(x);
writeln(abs(x)/x);
end.
program задача18;
var n,m: integer;
begin
write(‘n=’);readln(n);
write(‘m=’);readln(m);
writeln(round(n/m-n div m+0.5));
end.
//19 задача
program бревно;
var L,x: real;
begin
write(‘Длинна бревна — ‘);readln(L);
write(‘отпиливать по — ‘);readln(x);
writeln(‘бревно будет распилино на ‘,trunc(L/x),’ кусков длинной — ‘
,x,’, несчитая куска длинной ‘,L-trunc(L/x)*x);
end.
//20 задача
program бревно;
var L: real; n:integer;
begin
write(‘Длинна бревна — ‘);readln(L);
write(‘в скольких местах было распилено бревно? ‘);readln(n);
writeln(‘средняя длинна получившихся кусков = ‘,L/(n+1));
end.
//21 задача
program кольцо;
var d:real;n:integer;
begin
write(‘диаметр кольца — ‘);readln(d);
write(‘в скольких местах было разрезано кольцо? ‘);readln(n);
writeln(‘средняя длинна получившихся кусков = ‘,(pi*d)/(n+1));
write(‘можно округлить до целых: ‘,round((pi*d)/(n+1)),’ или до сотых, как удобней: ‘,((pi*d)/(n+1)):0:2);
end.
Здравствуйте. Можете привести примеры для всех задач? А то уже и подзабыл как они решаются.
Добрый день подскажите с чего начать не пойму что делать с 1 задачей
1. n-е четное число (первым считается 2, вторым 4 и т.д.)
мне просто не понятно что с этим делать подскажите пожалуйста
program zad1;
var
x,y: real;
begin
write(‘x=’);
readln(x);
x:=round(x);
y:=2;
writeln(‘n_чётное=’,trunc(x*y));
end.
По-моему, как то так )) только начал изучать 2 часа назад, не судите строго.
program zad2;
var
x,y: real;
q:integer;
begin
write(‘x=’);
readln(x);
x:=trunc(x);
y:=2;
q:=-1;
writeln(‘n_чётное=’,((x*y)-q));
end.
program zad3;
var
n,i,k:integer;
begin
write(‘введите количество тел ‘);
readln(n);
i:=1;
k:=1;
writeln(‘в промежутке ‘, (n-(i+k)));
end.
program zad5;
var
a,b:integer;
begin
write(‘секунды ‘);
readln(a);
b:=60;
writeln(‘минуты ‘, (a div b));
end.
если я правильно понял, вот вариант 3 задачи
var
x,y,z: Integer;
begin
write(‘Человек в очереди-‘); readln(x);
write(‘Сколько между ‘); readln(y);
write(‘и ‘); readln(z);
writeln(‘В промежутке-‘,z-y);
end.
вот моя версия пятой задачи
program секунды;
var
x: integer;
begin
write(‘Секунд, x= ‘);
readln(x);
writeln(‘Сколько полных минут=’, trunc(x/60));
writeln(‘Сколько полных часов=’, trunc(x/3600));
end.
Задание 9, правильно?
program zad9stolb;
uses crt;
Var
X, y, a, b,f:Real;
begin
Write(‘растояние до столба: x= ‘, );
Read(x);
Write(‘растояние между столбов: y= ‘, );
Read(y);
Write(‘столб до которого нужно узнать растояние:a= ‘, );
Read(a);
F:=a-1;
b:=y*f+x;
Write(b);
end.