Вывод русскими буквами
Лабораторная работа N 2
по дисциплине "Теория и технология программирования"
на тему: "Вычисления с условиями"
Цель работы.
Цель лабораторной работы состоит в формировании умений:
- Работы с операторами проверки условий;
- Анализа вводимых пользователем данных;
- Создания русскоязычного интерфейса программы.
Задание.
В соответствии с персональным вариантом задания написать программу, которая предлагает пользователю ввести требуемые данные (параметры A,B,C,D,G,M,N,K,W для различных вариантов), проверяет корректность введенных данных (отрицательный или дробный возраст, нулевой год и т.д.), предлагает исправить некорректно введенные данные и вычисляет требуемые в задании условия:
таблица 1.
Индивидуальные варианты
№ | Задание | |
1. | Дано число C. Распечатать величину этого числа в словесной форме, учитывая его знак | Предусмотреть, что -9 <= С <= 9 |
2. | Дано число М. Определить полугодие, на которое приходится месяц M и количество дней в этом месяце. | Предусмотреть, что 1<=M<=12, год невисокосный. |
3. | Дано число N. Напечатать фразу "Мне N лет", учитывая, что при некоторых значениях N слово "лет" надо заменить на слово "год" или ''года'' | Предусмотреть, что N<100,N - целые |
4. | Дано число N. Напечатать фразу "Мы успешно сдали N экзаменов", согласовав окончание слова "экзамен" с числом N | Предусмотреть, что 1<=M <=20 |
5. | Определить время года, к которому относится месяц M и найти количество дней в этом месяце | Педусмотpеть, что 1 <= M <= 12 год високосный |
6. | Даны два числа D-день и M-месяц. Определить K- номер того дня високосного года, который имеет дату D и M. | |
7. | Определить D и M-дату К-го по счету дня високосного года. Месяц вывести числом и в словесной форме. | |
8. | Даны два числа D и M, определяющие день и месяц. Считая, что год невисокосный и его день 1 Января приходится на день недели W, определить день недели с датой D и M . | |
9. | Дан номер года. Найти число дней в году . | В григориганском календаре каждый год, номер которого делится на 4,являeтся високосным, за исключением тех, которые делятся на 100 и не делятся на 400 нацело. 1900г.-невисокос. 2000г.-високосный. |
10. | Даны три числа D,M и G. Проверить образуют ли они правильную дату и вывести соответствующее сообщение. | Например,31.06.90 - неправильная дата. Определение вис.г. см. в условии N9. |
11. | Даны три целых числа, определяющие дату: год, месяц, день. Считая, что год не високосный, определить дату следующего дня. | |
12. | В японском календаре был принят 60-ти летний цикл, состоящий из пяти 12-ти летних подциклов. Внутри подцикла года носили названия животных мыши,коровы,тигра,зайца,дракона,змеи,лошади,овцы,обезьяны,курицы,собаки и свиньи. Попарно года в цикле обозначались названиями цвета: зеленый, красный, желтый , белый и черный. Определите цвет и знак вводимого года по японскому календарю. | Начало очередного цикла:1984 год-год зеленой мыши 1985 -год зеленой коровы и т.д. |
13. | Даны 3 числа. 2 из них – длины сторон треугольника а третий – угол между ними. Определить длины всех сторон треугольника и величину углов треугольника. Вывести в таблице длину сторон, величину углов, значение sin и cos углов. | |
14. | Даны две даты. Определить количество дней между этими датами | |
15. | Даны три числа A,B,C. Написатьпрограмму, определяющую образуют ли они геометрическую прогрессию и выдающую на печать с первого по десятый член, если это прогрессия. | |
16. | Задано два промежутка времени (Час, Мин, Сек). Проверить время на корректность. Напечатать сумму двух времен и разнице двух времен. | |
17. | Задано время в часа и минутах. Определить через сколько минут часовая и минутная стрелки будут образовывать угол в 90 градусов. Часовая стрелка имеет дискретное (почасовое) перемещение. | |
18. | Написать программу, которая после введенного с клавиатуры числа ( в диапазоне от 1 до 999), обозначающего денежную единицу, дописывать слово «рубль» в правильной форме. Например : 12 рублей, 21 рубль. | |
19. | Написать программу для вычисления совпадения дня недели – пятницы, 13 числа и полнолуния | |
20. | Глупая лягушка поднимается по лестнице. Лягушка делает прыжок вверх на N ступенек, при этом у нее получается отскок от достигнутого результата на M ступенек вниз. Сколько потребуется сделать прыжков лягушке, чтобы остановится на ступеньке с номером S? | |
21. | Задан год и номер первого дня недели в году. Определить число различных дней недели в году | |
22. | Даны 2 натуральных числа M и N. Определить сумму M последних цифр числа N. | |
23. | Реализуйте игру «угадай число». В заданном диапазоне загадывается число, за N попыток игрок вводит числа. После каждого ввода, компьютер сообщает больше, меньше или равно введенное число загаданного | srand(time(0));// инициализация генератора случайных чисел. ... A=rand()%20; //Случайное число от 0 до 20 |
24. | Программа генерирует 4-х значное число, причем цифры в нем не могут повторяться. Программа предлагает ввести пользователю число. После ввода, программа сообщает игроку, сколько цифр из числа программы-игрока есть в задуманном и стоят на своем месте (Быки), и сколько есть в задуманном, но не стоят на своем месте (коровы).Если число не угадано, возврат вводу числа игроком. | |
25. | С помощью использования логических операторов, составить программу для перевода числа из десятичной в двоичную систему счисления | |
26. | С помощью использования логических операторов, составить программу для перевода числа из двоичной в восьмеричную систему счисления | |
27. | С помощью использования логических операторов, составить программу для перевода числа из восьмеричной в десятичную систему счисления | |
28. | Задача на определение «Счастливого билета». В серии из 10 опытов, определить число счастливых билетов (сумма цифр левой половины номера билета равны сумме цифр правой половине номера билета) с номерами, состоящими из 6 цифр. | Номера билетов получаются случайным образом (см. задачу №23) |
29. | Пользователю предлагается ввести число Y. Требуется проверить, является ли введенное число Y решением уравнения ![]() | |
30. | В наборе монет и банкнот есть следующие номиналы: монеты – 1, 2, 5, 10 рублей, банкноты – 50, 100, 500, 1000, 5000 рублей. Пользователь вводит стоимость товара. Требуется рассчитать минимальный набор банкнот и монет необходимый для покупки товара. | |
31. | Составить программу, которая осуществляет перевод кода цвета из палитры RGB в палитру HLS. | H = arcsin(sqrt(3/2)*(G-R)/S) L = (R+G+B)/3 S = sqrt(R^2 + G^2 + B^2 - B * G - B * R - G * R) R = L - 1/3*S*cos(T)-1/v 3 *S*sin(T) G = L + 2/3*S*cos(T) B = L - 1/3*S*cos(T)+1/v 3 *S*sin(T) |
32. | Составить программу, которая осуществляет перевод кода цвета из палитры CMYK в палитру RGB. | R = 255 × (1-C) × (1-K) G = 255 × (1-M) × (1-K) B = 255 × (1-Y) × (1-K) R' = R/255 G' = G/255 B' = B/255 K = 1-max(R', G', B') C = (1-R'-K) / (1-K) M = (1-G'-K) / (1-K) Y = (1-B'-K) / (1-K) |
33. | Пользователю предлагается ввести число. Вывести на экран общее количество, число четных и нечетных чисел, из которых состоит введенное число. | |
34. | Написать программу, реализующую вычисление контрольной суммы алгоритмом Луна | |
35. | Написать программу, реализующую вычисление контрольной суммы штрих кода стандартов EAN-8 и EAN-13 | |
36. | Написать программу, реализующую вычисление контрольной суммы штрих кода стандарта EAN-128 | |
37. | Написать программу, реализующую алгоритм проверки контрольной суммы с исправлением ошибки CRC8 | |
38. | Написать программу - реализацию игры «камень ножницы бумага». Пользователь вводит свой вариант ответа, компьютер случайным образом выбирает свой вариант. Программа сравнивает ответы и определяет победителя. | Для получения случайного числа см. пояснение к заданию №23 |
39. | Пользователь вводит даты рождения 5 людей. Требуется посчитать средний возраст (годы, месяцы, дни) | |
40. | Пользователь вводит даты рождения 5 людей. Требуется среднюю дату рождения в году (среднее арифметическое номеров дня рождения). Сделать 2 варианта программы для високосного и не високосного годов. | |
41. | Составить программу для вычисления числа перестановок ![]() | |
42. | Пользователь вводит 3 даты рождения. Программа должна вывести на экран насколько 1 дата старше (младше) второй и третьей, вторая дата старше (младше второй) |
Вывод русскими буквами
#include <stdafx.h>
#include <conio.h>
#include <windows.h>
#include <string.h>
//-----------Функция для отображения русских букв-----------//
char bufRus[256];
char* Rus(const char* text)
{
CharToOem(text,bufRus);
return bufRus;
}
//Вызов функции внутри функции main:
printf(Rus(«Вывод текста русскими буквами\n"));
Отчет.
Отчет должен содержать следующие разделы: титульный лист, задание, текст программы, входные и выходные данные, пример работы программы, выводы.