Решить по информатике с решением и объяснением
в одной из кодировок unicode каждый символ кодируется 16 битами. вова написал текст (в нём нет лишних пробелов):
"собака, кошка, курица, корова, лошадь, коза,
овца - животные".
затем он добавил в список название ещё одного животного. заодно он добавил необходимые запятые и пробелы. при этом размер нового предложения в данной кодировке оказался на 10 байт больше, чем размер исходного предложения. напишите в ответе длину добавленного названия животного в символах.
его можно загрузить с http://ardx.org/CODE06
(скопируйте текст и вставьте его в новое окно Arduino Sketch)
/* Мелодия
*(cleft) 2005 D. Cuartielles for K3
*В этом примере мы проигрываем мелодию с пьезоэлемента. Он посылает ШИМ-сигнал соответствующей
*частоты, в результате генерируется музыкальный тон.
*Вычисление требуемой задержки осуществляется с следующей формулы:
*
*timeHigh = period / 2 = 1 / (2 * toneFrequency)
*задержки задаются следующей таблицей:
*
* нота
частота (period)
timeHigh
* c
261
Hz
3830
1915
* d
294
Hz
3400
1700
* e
329
Hz
3038
1519
* f
349
Hz
2864
1432
* g
392
Hz
2550
1275
* a
440
Hz
2272
1136
* b
493
Hz
2028
1014
* C
523
Hz
1912
956
*
* http://www.arduino.cc/en/Tutorial/Melody */
int speakerPin = 9;
int length = 15; // число нот
char notes[] = "ccggaagffeeddc "; // пробел представляет паузу int beats[] = { 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 2, 4 }; int tempo = 300;
void playTone(int tone, int duration) {
for (long i = 0; i < duration * 1000L; i += tone * 2) { digitalWrite(speakerPin, HIGH); delayMicroseconds(tone);
digitalWrite(speakerPin,
LOW);
delayMicroseconds(tone);
}
}
void playNote(char note, int duration) {
char names[] = { 'c', 'd', 'e', 'f', 'g', 'a', 'b', 'C' }; int tones[] = { 1915, 1700, 1519, 1432, 1275, 1136, 1014, 956
};
// проигрывать тональность соответствующую названию ноты for (int i = 0; i < 8; i++) {
if (names[i] == note) { playTone(tones[i], duration);
}
}
}
void setup() { pinMode(speakerPin, OUTPUT);
}
void loop() {
for
(int i = 0; i < length; i++) {
if (notes[i] == ' ') {
delay(beats[i] * tempo); // пауза
}
else {
playNote(notes[i], beats[i] * tempo);
}
// пауза между нотами
delay(tempo / 2);
}
}
Объяснение:
Cin - это объект входного потока имен std: std::cin >> x; В данном коде программы используется оператор cin, операция взятия из потока >> чтобы получить от пользователя введенное им значение. Объект std::cin забирает вводимую пользователем информацию из стандартного потока ввода, который обычно является клавиатура. Функция Cin достаточно интелектуальна, чтобы понять, какая информация введена с клавиатуры. Ведь мы можем ввести целое число, а также можем ввести дробное, сивмольное или текст. Cout - это объект выходного потока имен std::. Это необъявленный идентификатор. Его не нужно объявлять. Его нужно только подключать к программе при слова include: #include std::cout <<"Выходной поток"; В данном коде программы используется оператор cout, операция поместить в поток <<, чтобы вывести на экран пользователю определенную информацию. В данном случае на экран выведится Выходной поток. cout достаточно умный, чтобы определить, что нужно вывести на экран, то есть это будет переменная дробного числа или целого или сивмольного. Напишим программу, которая объявляет две переменных целочисленного числа. В них вы вводим с клавиатуры 2 числа и выводим полученный результат.
#include <iostream>//директива препроцесора
#include <conio.h> //директива препроцесора
void main ()
{
int x,y; //объявляем переменный целого типа
std::cout<<"X = "; //На экран выводится 'X = '
std::cin>>x; //вводим с клавиатуры число, например: 5
std::cout<<"Y = "; //На экран выводится 'Y = '
std::cin>>y; //вводим с клавиатуры число, например: 8
std::cout<<"x+y = "<<(x+y)<< std::endl;
_getch();
}
заголовочный файл <iostream>включает объекты cin, cout, которые нам нужны. Если #include убрать, то при компиляции выйдет ошибка. #include необходимо для того, чтобы мы видели результат на экране, благодаря функции _getch(). Если ее не будет, то программа выполнится и закроется. И мы не успеем увидеть результат работы программы. Если откомпилировать код, написанный выше, то результат будет следующий:
Итак, мы видим, что в std::cout<<"x+y = "<<(x+y)<< std::endl; выводится 'x + y = '. После этого вычисляется результат суммы и сразу же выводится результат. Мы могли сделать по-другому:
#include <iostream>//директива препроцесора
#include <conio.h> //директива препроцесора
void main ()
{
int x,y; //объявляем переменный целого типа
int sum; //Переменная для вычисления суммы
std::cout<<"X = "; //На экран выводится 'X = '
std::cin>>x; //вводим с клавиатуры число, например: 5
std::cout<<"Y = "; //На экран выводится 'Y = '
std::cin>>y; //вводим с клавиатуры число, например: 8
sum = x + y ;
std::cout<<"x+y = "<<(x+y)<< std::endl;
_getch();
}
Результат работы программы будет аналогичный. std::endl - это оператор конца строки. Давайте это же сделаем и для дробных чисел:
#include <iostream>//директива препроцесора
#include <conio.h> //директива препроцесора
void main ()
{
float x,y; //объявляем переменный дробного типа
float sum; //Переменная дробного типа для вычисления суммы
std::cout<<"X = "; //На экран выводится 'X = '
std::cin>>x; //вводим с клавиатуры число, например: 2.25
std::cout<<"Y = "; //На экран выводится 'Y = '
std::cin>>y; //вводим с клавиатуры число, например: 4.89
sum = x + y; //Вычисление суммы
std::cout<<"x+y = "<<(x+y)<< std::endl;
_getch();
}
Результат работы программы:
Итак, мы видим, что функция cin и функция cout интелектуально различить дробные и целые числа.
Объяснение: