Иллюстрированный самоучитель по С++ для начинающих

Решения (задачи 180-197)

Задача 184.

// Телеграф – передача сообщений при помощи азбуки Морзе
#include "stdio.h"
#include "conio.h"
#include "string.h" // strlen
#include "dos.h" // delay
// параметры передачи
#define TONE 100 // частота сигнала (гц)
#define LI 50 // длительность (мс) "точки"
#define L2 100 // длительность (мс) "тире"
#define L3 50 // пауза (мс) между точками и тире одной
// буквы
#define L4 100 // пауза (мс) между буквами
#define L5 150 // пауза (мс) между словами
void main()
// кодировка букв русского алфавита
char *morse[] = {
" _ II II Н Н_____Ч II II / /7\ П О Т1
,-…,.---,--., //А, b,В,1
II Д,Е,Ж,3
// и,й,к,л
// м,н,о,-п
// Р,С,Т,У
// Ф,Х,Ц,Ч
// ш,щ,ъ,ы
// ь,э,ю,я
unsigned char mes[80]; // сообщение
char sim[4]; // символ в кодировке Морзе –
// последовательность точек и тире
char znak; // "передаваемый" знак – тире или точка
int i,j; // номер символа и знака
puts("\n*** Телеграф ***");
puts("Введите сообщение, которое надо передать");
puts("(используйте только заглавные русские буквы)");
printf(" › ");
gets(mes);
for (i =0; i < strlen(mes); i++)
if (mes[i] >= 'A1 && mes[i] <='Я')
{
// определим код очередной буквы (ф-я Ord) сообщения
//и получим из таблицы кодировки соответствующий
// элемент массива – последовательность точек и тире
strcpy(sim,morse[mes[i]-128]); j = 0;
do
if (sim[j] == '-' II sim[j] == '.') {
putch(sim[j++]);
sound(1000);
if (sim[j] == '.') delay(LI);
else delay(L2);
nosound;
delay(L3);
le (sim[j]!= ' ' && j <4); delay(L4); // пауза между буквами
else
if (mes[i] == ' ') // пробел между словами {
printf(" "); // пробел между словами сообщения
delay(L5);
puts("\п Сообщение передано!");
puts("Для завершения работы нажмите Enter");
getch ();

Задача 185.

// Вычисление объема цилиндра
#include <stdio.h> #include <conio.h> #include <math.h> // для доступа" к М PI
// объем цилиндра
float veil(float h, float r)
return(M PI*r*r*h);
void main ()
float r,h; // высота и радиус основания цилиндра
float v; // объем цилиндра
puts("Вычисление объема цилиндра");
printf("Введите высоту и радиус основания › ");
scanf ("%'f%f", &h, &r);
v = veil(h, r);
printf("Объем цилиндра %3.2f\n", v);
printf("Для завершения нажмите Enter");
getch();
Если Вы заметили ошибку, выделите, пожалуйста, необходимый текст и нажмите CTRL + Enter, чтобы сообщить об этом редактору.