Общие замечания

Приступая к решению задач этого раздела, следует вспомнить, что:

  • каждому символу соответствует число — код символа;
  • в C++ строка — это массив символов;
  • последним символом строки обязательно должен быть нуль-символ, код которого равен 0, и который в тексте программы изображается так: ' \ 0 ';
  • сообщения или подсказки, используемые в программе, удобно представить как массив указателей на строки и инициализировать массив, задать сообщения в инструкции объявления массива:

    char *mes[] ={"Сообщение 1","Сообщение 2", ... , "Сообщение"};

  • если вводимая во время работы программы строка содержит пробелы, то функция scanf вводит только часть строки до первого пробела, а функция gers — всю строку, в том числе и соответствующий клавише символ ' \п'.

Задачи

165. Написать программу, которая запрашивает имя пользователя и здоровается с ним. Рекомендуемый вид экрана во время выполнения программы приведен ниже (данные, введенные пользователем, выделены полужирным шрифтом).

Как Вас зовут?

Введите свои имя и фамилию, затем нажмите

-> Вася Иванов

Здравствуйте, Вася Иванов!

166. Написать программу, которая запрашивает у пользователя имя и отчество, затем здоровается с ним. Для ввода используйте функцию getch().

167. Напишите программу, которая вычисляет длину введенной с клавиатуры строки.

168. Напишите программу, которая выводит на экран сообщение в "телеграфном" стиле: буквы сообщения должны появляться по одной, с некоторой задержкой.

169. Напишите программу, которая выводит код введенного пользователем символа. Программа должна завершать работу в результате ввода, например, точки. Рекомендуемый вид экрана во время выполнения программы приведен ниже (данные, введенные пользователем, выделены полужирным шрифтом).

Введите символ и нажмите .

Для завершения введите точку.

-> 1

Символ: 1 Код: 4 9

-> 2

Символ: 2 Код: 50 -> ы

Символ: Код: 235

170. Написать программу, которая выводит на экран первую часть таблицы кодировки символов (символы с кодами от 0 до 127). Таблица должна состоять из восьми колонок и шестнадцати строк. В первой колонке должны быть символы с кодом от 0 до 15, во второй — от 16 до 31 и т. д.

171. Написать программу, которая в введенной с клавиатуры строке преобразует строчные буквы русского алфавита в прописные (учтите, что стандартная функция upcase с символами русского алфавита не работает). Рекомендуемый вид экрана во время выполнения программы приведен ниже (данные, введенные пользователем, выделены полужирным шрифтом).

Введите строку текста и нажмите

-> изучив основы C++, можно начать программировать под

Windows ,

Строка, преобразованная к верхнему регистру:

ИЗУЧИВ ОСНОВЫ C++, МОЖНО НАЧАТЬ ПРОГРАММИРОВАТЬ ПОД WINDOWS

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

173. Написать программу, которая проверяет, является ли введенная с клавиатуры строка целым числом. Рекомендуемый вид экрана во время выполнения программы приведен ниже (данные, введенные пользователем, выделены полужирным шрифтом).

Введите число и нажмите -> 23.5

Введенная строка не является целым числом.

174. Написать программу, которая проверяет, является ли введенная с клавиатуры строка двоичным числом.

175. Написать программу, которая проверяет, является ли введенная с клавиатуры строка шестнадцатеричным числом.

176. Написать программу, которая проверяет, является ли введенная с клавиатуры строка дробным числом.

177. Написать программу, которая преобразует введенное с клавиатуры восьмиразрядное двоичное число в десятичное. Рекомендуемый вид экрана во время выполнения программы приведен ниже (введенные пользователем данные выделены полужирным шрифтом).

Введите восьмиразрядное двоичное число и нажмите -> 11101010

Двоичному числу 11101010 соответствует десятичное 234 Для завершения нажмите

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

179. Написать программу, которая преобразует введенное пользователем десятичное число в число в указанной системе счисления (от 2 до 10). Рекомендуемый вид экрана во время выполнения программы приведен ниже.

Введите целое число -> 67

Введите основание системы счисления -> 2

Десятичному числу 67 соответствует число 100011 по основанию 2

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

181. Написать программу, которая вычисляет значение выражения NoO1N1O2...OkNk, где Ni — целое одноразрядное число, Oi — один из двух знаков простейших арифметических действий: сложения или вычитания. Ниже представлен рекомендуемый вид экрана во время работы программы (данные, введенные пользователем, выделены полужирным шрифтом).

Введите арифметическое выражение, например, 4+5-3-5+2, и нажмите -> 9-5+4+2-6

Значение введенного выражения: 4 Для завершения программы нажмите

Факультатив

182. Написать программу, которая подводит итоги Олимпийских игр. Программа должна получить от пользователя число медалей разного достоинства, завоеванное каждой командой-участницей, вычислить общее количество медалей и соответствующее ему число очков, и после этого упорядочить список в соответствии с набранным количеством очков. Количество очков вычисляется по следующему правилу: за золотую медаль команда получает семь очков, за серебряную — шесть, за бронзовую — пять очков.

Рекомендуемый вид экрана во время работы программы приведен ниже. Данные, введенные пользователем, выделены полужирным шрифтом.

Итоги Олимпийских игр

Введите в одной строке количество золотых,

серебряных и бронзовых медалей.

Австрия -> 3 5 9

Германия -> 12 9 8

Канада -> 6 5 4

Китай -> 0 6 2

Корея -> 3 1 2

Норвегия -> 10 10 5

Россия -> 9 6 3

США -> 6 3 4

Финляндия -> 2 4 6

Япония -> 5 1 4 .

Итоги зимней Олимпиады в Нагано, 1998 г.

  Cтрана Золото Серебро Бронза Всего Очков  
1 Германия 12 9 8 29 178  
2 Новергия 10 10 5 25 155  
3 Россия 9 6 3 18 114  
4 Австрия 3 5 9 17 96  
5 Канада 6 5 4 15 92  
6 США 6 3 4 13 80  
7 Финлядия 2 4 6 12 68  
8 Япония 5 1 4 10 61  
9 Китай 0 6 2 8 46  
10 Корея 3 1 2 6 37  

183. Написать программу, реализующую игру "угадай число". Правила игры следующие. Играют двое. Один задумывает число, второй — угадывает. На каждом шаге угадывающий делает предположение, а задумавший число — говорит, сколько цифр числа угаданы и сколько из угаданных цифр занимают правильные позиции в числе. Например, если задумано число 725 и выдвинуто предположение, что задумано число 523, то угаданы две цифры (5 и 2) и одна из них (2) занимает верную позицию.

Ниже приведен рекомендуемый вид экрана во время работы программы. Данные, введенные пользователем, выделены полужирным шрифтом.

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

0.

На своих местах: На своих местах: На своих местах: На своих местах: На своих местах:

Ваш вариант -> 123 Угадано:

(Ваш вариант -> 456 Угадано: 1.

Ваш вариант -> 654 Угадано: 2.

Ваш вариант -> 657 Угадано: 2.

Ваш вариант -> 658 Угадано: 3.

*** ВЫ УГАДАЛИ ! ***

Нажмите для завершения.

184. Напишите программу-телеграф, которая принимает от пользователя сообщение и выводит его на экран в виде последовательности точек и тире. Вывод точек и тире можно сопроводить звуковым сигналом соответствующей длительности. Азбука Морзе для букв русского алфавита приведена ниже.

А

.-

Б

-...

в

.---

г

--.

д

-..

Е

 

ж

...-

3

--..

и

..

И

.---

к

-.-

л

.-..

м

--

Н

-.

О

---

п

.--.

р

.-.

С

...

т

-

У

..-

ф

..-.

X

....

ц

-.- .

ч

---.

ш

---

Щ

--.-

ъ

-..-

ы

-.—

ь

-..-

э

..-.

ю

..--

я

.-.-