Простые задачи для обучения программированию "с нуля" -- Pascal/Паскаль
Primary tabs
[материалы по Pascal см. здесь]
Задачи к уроку #1
- Напишите программу, выводит на экран три строки "Мир", "Труд" и "Май" (кавычки не нужны). Причём сделайте чтобы выводилось сначала так:
Мир Труд Май
А потом так:
Мир Труд Май
Подсказка: помните, что печатая строковые литералы, вы можете печатать не только любые буквы, но и любое количество пробелов, не только между словами, но и в конце или в начале фраз.
- Напишите программу с тремя переменными целого типа, первым двум присвойте значения, а третьей переменной присвойте их сумму. Выведете значение третей переменной на экран.
- Напишите программу, которая просит пользователя ввести два числа (сначала одно, потом второе), а затем выведете на экран сумму этих двух чисел.
- Напишите программу, которая просит пользователя вводить числа до тех пор, пока не встретится число больше 12-ти, когда оно встретится напечатайте (выведете в консоль) сообщение об этом и завершите выполнение программы.
Задачи к уроку #2 (типы данных)
- Напишите программу, в которой используются две переменные логического типа (boolean), присвойте им значения и выведете для каждой переменной на экран строку "истина", если переменная имеет значение true и "ложь", если переменная имеет значение false.
- Переделайте предыдущую задачу для 3-х переменных, литералы "истина" и "ложь" запишите в переменные, и используйте эти две строковые переменные для уведомления пользователя об истинности/ложности каждой из трёх логических переменных (предварительно присвойте им логические значения).
- Напишите программу, где двум строковым переменным присваиваются значения, третей же строковой переменных присвойте объединение (конкатенацию) двух предыдущих строк. Затем напечатайте значение третьей строковой переменной.
- Напишите программу, сравнивающую вещественное число с целым (сами присвойте им значения), записывающую логический результат сравнения в логическую (boolean) переменную и использующую эту переменную для вывода с помощью условного оператора if фраз "выражения истинно", "выражение ложно". Обе фразы выводите на экран с помощью переменных строкового типа (string).
Задачи к уроку #3 (ввод/вывод данных)
- Напишите программу которая просит пользователя ввести два символа (сначала один, потом второй). Выведите полученные значения на экран с комментариями
- Напишите программу которая просит пользователя ввести две строки, затем проводит их конкатенацию и выводит на экран результат конкатенации с комментарием.
- Напишите программу, где пользователю предлагается ввести строку, считайте первые три символа в переменные символьного типа (char), первый и третий символы выведите на экран.
- Пусть пользователь вводит строку:
1234567
(или любую другую, но достаточно длинную)
- считайте из неё 5-й символ, используя возможность read() записывать значений во многие переменные сразу (если эти значения есть в потоке ввода), например:
read(a, b, c);
Выведите полученный символ на экран.
- Также считайте 5-ый символ (и выведите его на экран), но используя в read() только одну переменную.
- считайте из неё 5-й символ, используя возможность read() записывать значений во многие переменные сразу (если эти значения есть в потоке ввода), например:
Задачи к уроку #4 (условный оператор if)
- Создайте программу с двумя переменными целого типа, присвойте им значения, если первая переменная больше второй, то увеличьте её значение на 3, иначе увеличьте значение второй переменной на 8. В конце программы выведите значения обоих чисел на экран.
Подсказка: напоминаем, что в Pascal возможны выражения вида:
a = a + 2; // увеличение значение на 2
или
a = a + b; // увеличение значения на значение переменной b
- Напишите программу, которая считывает из консоли (от пользователя) два числа. Если 1-ое больше 2-ого, то второму присвойте значение 1, иначе 1-ому присвойте значение 5, а второму 7.
В конце программы выведите значения обоих чисел на экран. - Пользователь вводит целое число. Сообщите в консоли о его (числа) четности/нечётности.
Подсказка: для проверки четности можно использовать операцию получения остатка mod.
- Пусть пользователь указал 3 целых числа, напишите программу которая:
- Выведет на экран максимальное из них.
- Выведет на экран минимальное из них.
Задачи к уроку #5 (циклы)
- Выведете на экран все числа от 1 до 100 с помощью цикла (можно все три варианта в одной программе):
- for
- while
- repeat
- Модифицируйте предыдущую задачу так, чтобы на экран выводились только нечетные числа.
- Пользователь вводит целое положительное число, если оно не соответствует критериям (то есть не является целым и положительным), выведете сообщение об ошибке, в противном случае выведете на экран все числа от 1 до введённого пользователем.
- Модифицируйте предыдущую задачу так, чтобы в случае, если число удовлетворяет требованиям (целое, положительное), то на экран выводились четные числа.
- Выведете на экран числа от 1 до 5 два раза с помощью вложенных циклов. Так чтобы в консоли было:
1 2 3 4 5 1 2 3 4 5
- M раз выведете на экран числа от 1 до N с помощью вложенных циклов. Так чтобы в консоли было:
$
\left.
\begin{array}{ccc}
1 & ... & N \\
1 & ... & N \\
\end{array}
\right\} \text{M раз}
$ - Модифицируйте предыдущую задачу так, чтобы в каждой чётной (той, у которой номер чётный) строке выводилось N символов, а в каждой нечетной N/2 символов (сделайте проверку того, что $N/2$ больше нуля)
- Пользователь вводит числа до тех пор пока им не будет передан ноль. В ответ на каждое число программа должна сообщать чётное оно или нет.
- Пользователь вводит четное целое число (если нечетное сообщите об ошибке). Делите это число в цикле на $2$ до тех пор пока оно делится, выводя каждый промежуточный результат, например для $12$ в консоли получим:
6 3
А для 8:
4 2 1
- Пользователь два целых числа $M$ и $N$ целое число, если $M$ четное, делайте то же, что и в предыдущей задачи, а если нечётное, то умножайте $M$ в цикле на $3$ до тех пор пока результат не станет больше $N$ (и выводите ), например для:
M := 2; N := 15;
Получим:
6 18
- С помощью вложенных циклов выведите на экран таблицу умножения числе от 1 до 9, начнётся она как-то так:
1x1 = 1 1x2 = 2 ......
- С помощью вложенных циклов выведите на экран таблицу деления чисел от 1 до 9.
- Пользователь вводит целое положительное число$N$, если оно не соответствует критериям (то есть не является целым и положительным), выведете сообщение об ошибке, в противном случае выведите на экран все числа последовательности, не большие $N$, сформированной следующим образом:
8 10 3 12 14 3 16 18 3 20 22 3 и т.д.
-- то есть всё начинается с восьмерки, затем число увеличивается на 2, затем выводит тройка и ещё пара увеличенных на 2 чисел и т.д.
- Модифицируйте решение предыдущей задачи. так чтобы пользователь вводил второе число $M$, которое отвечало бы за длину возрастающего фрагмента, например для $M=4$:
$ \underbrace{8 \;10 \;12 \;14}_{\text{четыре числа}} \;3 \underbrace{\;16 \;18 \;20 \;22}_{\text{четыре числа}} \;3 \; .... \;3 \;.... \;\text{и т.д.} $Заметьте. что в предыдущей задаче $M$ было зафиксировано $=2$:
$ \underbrace{8 \;10}_{\text{два числа}} \;3 \underbrace{\;14 \;16}_{\text{два числа}} \;3 \; .... \;3 \;.... \;\text{и т.д.} $ - Пользователь передает целое положительное число $N$, выведете на экран последовательность от $1$ до $N$ "ёлочкой", например для $N = 17$:
1 2 3 4 5 6 7 5 9 10 12 13 15 16 17
- Пользователь передает целые положительные число $N$ и $M$, выведете на экран последовательность от $1$ до $N$, так чтобы ширина "ёлочки" увеличивалась до $M$ чисел, то уменьшалась до $1$. Например, для $M = 3$ и $N = 25$ получим:
$
1\; \\
2\; 3\; \\
4\; 5\; 6\;\;\;\;\;\;\;\;\; \text{--максимум три числа} \\
7\; 5\; \\
9\; \\
10\; 17\; \\
18\; 19\; 20\;\;\;\;\;\;\; \text{--снова три числа} \\
21\; 22\; \\
23\; \\
24\; 25\;.....
$ - Пользователь передает целые положительные число $N$, выведете на экран последовательность от $1$ до $N$, так чтобы ширина "ёлочки" росла волнами. Например, для $M = 49$ получим:
$
1\; \\
2\; 3\; \;\;\;\;\;\;\;\; \text{--сначала до двух} \\
4\; \\
5\; 6\; \\
7\; 8\; 9\; \;\;\;\;\;\;\;\; \text{--потом до трёх} \\
10\; 11\; \\
12\; \;\;\;\;\;\;\;\; \text{--возвращаемся к одному} \\
13\; 14\; \\
15\; 16\; 17\; \\
18\; 19\; 20\; 21\; \;\;\;\;\;\;\;\; \text{--тут уже четыре} \\
22\; 23\; 24\; \\
25\; 26\; \;\;\;\;\;\;\;\; \text{--снова убывает } \\
27\; \\
28\; 29\; \\
30\; 31\; 32\; \\
33\; 34\; 35\; 36\; \\
37\; 38\; 39\; 40\; 41\; \\
42\; 43\; 44\; 45\; \\
46\; 47\; 48\; \\
49\;
$
- Log in to post comments
- 17444 reads
fgh
Sun, 03/12/2017 - 14:56
Permalink
Задача №16, решенная для PHP