Петя сконструировал цифровое устройство с двумя датчиками. Первый датчик может фиксировать L различных значений, а второй – M различных значений. Один раз в секунду оба датчика должны записывать коды своих значений в буфер. Петя решил, что он будет для каждого датчика записывать в буфер код, используя минимально возможное одинаковое для всех показаний этого датчика количество бит (для записи показаний другого датчика может потребоваться другое, но также одинаковое для записи всех показаний этого датчика и минимально возможное количество бит). Петя обнаружил, что буфера хватает для записи значений ровно за 10 секунд измерений, причем после их записи буфер оказывается заполнен полностью. Вася предложил Пете заменить первый датчик на более современный, позволяющий фиксировать в 16 раз больше различных значений, чем тот, что использовал Петя. Петя обнаружил, что в этом случае буфера хватает для записи значений ровно за 8 секунд измерений и также после записи всех значений буфер оказывается заполнен полностью. Определите размер буфера в битах и запишите в ответ целое число.
Решение Pascal
Delphi/Pascal
program Case5;
var
N,A,B:Integer;
begin
Write('Введите номер действия: ');
Readln(N);
Write('Введите число A: ');
Readln(A);
Write('Введите число B: ');
Readln(B);
Case N of
1: Writeln(A+B);
2: Writeln(A-B);
3: Writeln(A*B);
4: Writeln(A/B);
end;
end.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
program Case5;
var
N,A,B:Integer;
begin
Write('Введите номер действия: ');
Readln(N);
Write('Введите число A: ');
Readln(A);
Write('Введите число B: ');
Readln(B);
Case N of
1: Writeln(A+B);
2: Writeln(A-B);
3: Writeln(A*B);
4: Writeln(A/B);
end;
end.
Решение C
C
#include <stdio.h>
int main(void)
{
system("chcp 1251");
int n;
float a,b;
printf("N:") ;
scanf ("%i", &n);
printf("A:") ;
scanf ("%f", &a);
printf("B:") ;
scanf ("%f", &b);
switch (n) {
case 1:
printf("%f\n",a+b) ;
break;
case 2:
printf("%f\n",a-b) ;
break;
case 3:
printf("%f\n",a*b) ;
break;
case 4:
printf("%f\n",a/b) ;
break;
}
return 0;
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
#include <stdio.h>
int main(void)
{
system("chcp 1251");
int n;
float a,b;
printf("N:") ;
scanf ("%i", &n);
printf("A:") ;
scanf ("%f", &a);
printf("B:") ;
scanf ("%f", &b);
switch (n) {
case 1:
printf("%f\n",a+b) ;
break;
case 2:
printf("%f\n",a-b) ;
break;
case 3:
printf("%f\n",a*b) ;
break;
case 4:
printf("%f\n",a/b) ;
break;
}
return 0;
}
Объяснение:
переменные а,с присваивают тип integer, т.е. целые числа; b присваивает тип string, т.е строковый тип
begin - начало программы
readln - оператор ввода, окончание ln осуществляет переход на новую строку
str(a,b) - т.е. преобразовать данные числа в строку
переменная b так же присваивает тип строковый
Val(b,a,c) где: b- строка, а-результат, с-позиция с которой произошла ошибка преобразования или 0
writeln(а) - оператор вывода, окончание ln осуществляет переход на новую строку
end. - конец программы