Запишите выражение на языке программирование c++ a) cos x + (cos^2 x) / (sqrt (x-1)) + tg x b) log3x^3 + 2^x-2 вычислите значения для заданных с клавиатуры x.
80 кбайт = 80*1024 байт = 81920 байт = 81920*8 бит = 655360 бит. 655360 бит со скоростью 1536 бит/сек передаются за x секунд → х=655360/1536 сек. За то же время со скоростью 768 бит/сек можно передать файл размером x сек * 768 бит/сек = 655360/1536*768 бит = 327680 бит = 327680/8 байт = 40960 байт = 40960/1024 кбайт = 40 кбайт
время1= 80*1024*8 бит/2048 бит в сек=320 сек размер файла за время1 = 768 бит в сек*320 сек=245760 бит=30720 байт= 30 Кбайт
1) 120 кбайт = 122880 байт 2) 3072 бит/ cек = 384 байт/cек 3) 122880 / 384 = 320 секунд - нужно для передачи 4)1024 бит/сек = 128 байт/ сек 5)128*320=40960 байт - можно передать за то же время через другое соединение 6) 40960 / 1024 = 40 кбайт ответ: 40 кбайт
С небольшой правкой процедуры, уменьшающей вдвое время ее работы.
procedure KolDel(n: integer; var res: byte); var i: integer; begin res := 2; for i := 2 to n div 2 do if n mod i = 0 then res := res + 1; end;
var m, n, i: longint; mx, kd: byte;
begin repeat writeln('Введите интервал, 2 натуральных числа, второе больше первого'); readln(m, n); until n > m; mx := 1; for i := m to n do begin KolDel(i, kd); if kd > mx then mx := kd end; writeln('Наибольшее количество делителей имеют числа:'); for i := m to n do begin KolDel(i, kd); if kd = mx then write(i, ' ') end; writeln; write('количество=', mx); readln end.
А вот такой вариант работает в 3.5 раза быстрее:
procedure KolDel(n: integer; var res: byte); var i: integer; begin res := 2; for i := 2 to n div 2 do if n mod i = 0 then res := res + 1; end;
var m, n, i: longint; mx, kd, k: byte; a: array[1..255] of longint;
begin repeat writeln('Введите интервал, 2 натуральных числа, второе больше первого'); readln(m, n); until n > m; mx := 1; for i := m to n do begin KolDel(i, kd); if kd > mx then begin mx := kd; k := 1; a[k] := i end else if kd = mx then begin k := k + 1; a[k] := i end end; writeln('Наибольшее количество делителей имеют числа:'); for i := 1 to k do Write(a[i], ' '); Writeln; Write('Количество=', mx); readln end.
Пример Введите интервал, 2 натуральных числа, второе больше первого 37 86 Наибольшее количество делителей имеют числа: 60 72 84 Количество=12
#include <iostream>
#include <cmath>
#include <iomanip>
int main()
{
int x;
std::cout << "Введите X: ";
std::cin >> x;
std::cout << "a) " << std::setprecision(3) << (cos(x) + pow(cos(x), 2)) / (sqrt(x-1) + tan(x)) << std::endl;
std::cout << "б) " << std::setprecision(3) << log(pow(x, 3)) / log(3.0) + pow(2, x-2);
return 0;
}