Главная страница
Навигация по странице:

  • 1.1 .Примеры задач, с линейным алгоритмом решения 1.

  • 1.2. Задачи для самостоятельного решения. Программирование линейных алгоритмов 1.

  • Комарова. 1 Примеры задач, с линейным алгоритмом решения


    Скачать 160.94 Kb.
    Название1 Примеры задач, с линейным алгоритмом решения
    АнкорКомарова
    Дата23.08.2022
    Размер160.94 Kb.
    Формат файлаpdf
    Имя файлаKernighan_Ritchie_The_C_programming_language_2e.pdf
    ТипДокументы
    #651561

    В языке Pascal операции отношения определены для величин лю- бого порядкового типа (целые, символьный, логический, перечислимый, диапазон).
    Логическое выражение – это логический операнд или последователь- ность логических операндов, разделенных между собой знаками логических операций (NOT, AND, OR, XOR).
    Порядок действий при вычислении значения логического выраже- ния:
    1. вычисляются значения в скобках;
    2. вычисляются значения функций;
    3. выполняется унарные операции (операция NOT);
    4. выполняется операция AND;
    5. выполняются операции OR, XOR;
    6. выполняются операции отношения.
    Действия выполняются слева направо с учетом их приоритета. Же- лаемая последовательность операций обеспечивается путем расстановки скобок в соответствующих местах выражения.
    При реализации некоторых программ удобно использовать функ- ции, которые имеют логическое значение. Обычно они используются для того, чтобы на некоторый вопрос получить ответ «ДА» или «НЕТ».
    1.1 .Примеры задач, с линейным алгоритмом решения
    1. Дано два числа, найти остаток от деления первого на второе и вывести результат.
    Program ostatok;
    Var a,b,x:integer;
    Begin
    Write('введите два числа ');
    Readln(a,b);
    X:=a mod b;
    Writeln('остаток от деления-',x);
    Readln;
    End.
    2
    . Дано два числа найти возведения положительного числа «x» в степень «n», т. е. y = x n
    . Расчет производится по формуле: y=Exp(n*ln(x)).
    Program N_2; {возведение положительного числа в степень}
    Var n, x, y : real;
    BEGIN
    Writeln('Программу разработал Иванов');
    Writeln('Возведение положительного числа x степень n');
    Writeln('x = ');
    11

    Readln(x);
    Write('n = ');
    Readln(n); y := exp(n*ln(x));
    Writeln('результат y=', y:10:6); readln; {задержка экрана до нажатия Enter}
    END.
    3
    . Определить расстояние на плоскости между двумя точками с за- данными координатами M1(x1,y1) и M2(x2,y2). program example1; var x1, x2, y1, y2: integer; d:real; begin writeln('Эта программа вычисляет расстояние между двумя точками на плоскости'); writeln('Введите координаты двух точек:'); write('x1= '); readln(x1); write('y1= '); readln(y1); write('x2= '); readln(x2); write('y2 ='); readln(y2); d:=sqrt(sqr(x2-x1)+sqr(y2-y1)); writeln('d= ',d); writeln('нажмите Enter для завершения работы программы'); readln end.
    4.
    Скорость первого автомобиля v
    1
    км/ч, второго – v
    2
    км/ч, расстоя- ние между ними s км. Какое расстояние будет между ними через t ч, если автомобили движутся в разные стороны?
    Согласно условию задачи искомое расстояние s
    1
    =s
    +(v
    1
    +v
    2
    )t (если ав- томобили изначально двигались в противоположные стороны) или s
    2
    =|(v
    1
    +v
    2
    )t
    -s| (если автомобили первоначально двигались навстре- чу друг другу).
    Чтобы получить это решение, необходимо ввести исходные дан- ные, присвоить переменным искомое значение и вывести его на печать.
    Program Car;
    Var V1, V2, T, S, S1, S2 : Real;
    Begin
    Write('Введите скорости автомобилей, рас- стояние между ними и время движения:');
    12

    ReadLn(V1, V2, S, T);
    S1 := S + (V1 + V2) * T;
    S2 := Abs((V1 + V2) * T – S);
    WriteLn('Расстояние будет равно ', S1:7:4, ' км или ', S2:7:4, ' км')
    End.
    Заметим, что идентификатор должен начинаться с латинской бук- вы, далее, кроме латинских букв, может содержать цифры, знак подчеркивания (_).
    Разумно, чтобы программа вела диалог с пользователем, т. е. необ- ходимо предусмотреть в ней вывод некоторых пояснительных сообщений. В противном случае даже сам программист может через некоторое время забыть, что необходимо вводить и что является ре- зультатом.
    Для всех величин в программе объявлен тип Real, что связано со стремлением сделать программу более универсальной и работающей с как можно большими наборами данных.
    5. Вычислить значение выражения
    Для решения задачи достаточно ввести все данные, безошибочно записать выражение и вывести результат. Примечание. При решении этой задачи не учитывается область определения выражения, считается, что вводятся только допустимые данные.
    Program Expression;
    Var X, Z : Real;
    Begin
    Write('Введите значения переменной X: '); ReadLn(X);
    Z := 6 * ln(sqrt(exp(x+1)+2*exp(x)*cos(x))) / ln(x – exp(x+3) * sin(x)) + abs(cos(x) / exp(sin(x)));
    WriteLn('Значение выражения: ', Z : 12 : 6)
    End.
    6
    . Текущее показание электронных часов: m часов (0≤ m≤
    23), n минут (0≤ n≤59), k секунд (0≤k≤59). Какое время будут показы- вать часы через p часов q минут r секунд?
    Program z1;
    Uses crt; var m,n,k,p,q,r: integer;
    Begin
    Clrscr;
    Write ('Текущее время (час.,мин.,сек.)=');
    Read(m,n,k);
    Write ('Следующее время (час.,мин.,сек.)=');
    13

    Read(p,q,r); m:=m+p; n:=n+q; k:=k+r; m:=(m+trunc((n+trunc(k/60))/60)) mod 24; n:=(n+trunc(k/60)) mod 60; k:=k mod 60;
    Writeln(m,' час. ',n,' мин. ',k,' сек.');
    Readkey; end.
    7.
    Полторы кошки за полтора часа съедают полторы мышки.
    Сколько мышек съедят X кошек за Y часов?
    Program z1_2;
    Uses crt; var x,k,y: real;
    Begin
    Clrscr;
    Write ('кошек:');
    Read(x);
    Write ('время (час.):');
    Read(y); k:=2/3*x*y;
    Writeln(x:3:2,' кошек за ',y:3:2,' час. съедят ',k:3:2,' мышей');
    Readkey; end.
    8
    . Для приготовления квашеной капусты на 10 кг капусты берут
    225 г соли , 350 г моркови, 200 г клюквы, 4 г лаврового листа. Сколько соли, моркови, клюквы и лаврового листа надо взять, если закуплено М кг капусты?
    program z1_5; uses crt; var kap,kl,mor,llist,m:real; begin clrscr; write('m=');read(m); kap:=22.5*m; kl:=20*m; mor:=33*m; llist:=0.4*m; writeln('Для приготовления ',m:2:1,' кг. квашенной капусты нужно:'); writeln('Капусты ',kap:2:1,' г.'); writeln('Клюквы ',kl:2:1,' г.'); writeln('Моркови ',mor:2:1,' г.'); writeln('Лаврового листа ',llist:2:1,' г.'); readkey; end.
    14

    9.
    Составьте программу для вычисления длин медиан треугольника, у которого длины сторон a, b, c.
    program z1_27; uses crt; var a,b,c,ma,mb,mc:real; xb,xc,ub,uc:real; begin
    {задача решена для остроугольного треугольника} clrscr; write('a,b,c=');read(a,b,c);
    {найдем 2 любых угла треугольника} xb:=(a*a+c*c-b*b)/(2*a*c); xc:=(b*b+a*a-c*c)/(2*a*b); uc:=arctan(sqrt(1+1/xc)); ub:=arctan(sqrt(1+1/xb));
    {по теореме косинусов найдем медианы} ma:=sqrt(sqr(a/2)+sqr(b)-a*b*cos(uc)); mb:=sqrt(sqr(b/2)+sqr(a)-a*b*cos(uc)); mc:=sqrt(sqr(c/2)+sqr(a)-a*c*cos(ub)); writeln('ma=',ma:3:3); writeln('mb=',mb:3:3); writeln('mc=',mc:3:3); readkey; end.
    10. Покупатель должен заплатит в кассу S руб. У него имеются 1, 2,
    5, 10, 50, 100, 500 руб. Сколько купюр разного достоинства отдаст по- купатель, если он начинает платить с самых крупных?
    program z3_10; uses crt; var a1,a2,a3,a4,a5,a6,a7: Real; s: integer;
    Begin
    ClrScr;
    Write('Введите S='); read(s); a1:=int(s/500); s:=s mod 500; a2:=int(s/100); s:=s mod 100; a3:=int(s/50); s:=s mod 50; a4:=int(s/10); s:=s mod 10;
    15
    a5:=int(s/5); s:=s mod 5; a6:=int(s/2); a7:=s mod 2;
    Writeln('500 руб.-',a1:5:0,' шт.');
    Writeln('100 руб.-',a2:5:0,' шт.');
    Writeln('50 руб.-',a3:5:0,' шт.');
    Writeln('10 руб.-',a4:5:0,' шт.');
    Writeln('5 руб.-',a5:5:0,' шт.');
    Writeln('2 руб.-',a6:5:0,' шт.');
    Writeln('1 руб.-',a7:5:0,' шт.');
    Readkey; end.
    1.2. Задачи для самостоятельного решения.
    Программирование линейных алгоритмов
    1.
    Вычислить значения выражений по формулам (все переменные имеют действительный тип): а) b) c) d) e) f) g) h) i) j
    ) k) l) m
    ) n) o) p
    )
    16
    q) r) s) t) u) v) w
    ) x
    )
    2. Определить время падения камня на поверхность земли с высоты h.
    3. Известна длина окружности. Найти площадь круга, ограничен- ного этой окружностью.
    4. Вычислить высоту треугольника, опущенную на сторону а, по известным значениям длин его сторон a, b, c.
    5. Вычислить объем цилиндра с радиусом основания r и высотой h.
    6. Определить расстояние, пройденное физическим телом за вре- мя t, если тело движется с постоянным ускорением а и имеет в начальный момент времени скорость V0.
    7. Вычислить площадь треугольника по формуле Герона, если за- даны его стороны.
    8. Определить координаты вершины параболы y=ax
    2
    +bx+c
    (a<>0). Коэффициенты a,b,c заданы.
    9. По данным сторонам прямоугольника вычислить его периметр, площадь и длину диагонали.
    10. Даны два числа. Найти среднее арифметическое их квадратов и среднее арифметическое их модулей.
    11. Дана длина ребра куба. Найти площадь грани, площадь полной поверхности и объем этого куба.
    12. Найти длину окружности и площадь круга заданного радиуса R.
    13. Даны координаты трех вершин треугольника (x1, y1), (x2, y2),
    (x3, y3). Найти его периметр и площадь.
    14. Дано целое четырехзначное число. Используя операции div и mod, найти сумму его цифр.
    15. Дано целое четырехзначное число. Используя операции div и mod, найти произведение его цифр.
    16. Скорость первого автомобиля V1 км/ч, второго – V2 км/ч, рас- стояние между ними S км. Определить расстояние между ними через T часов, если автомобили первоначально движутся навстречу друг другу.
    17

    17. Скорость лодки в стоячей воде V км/ч, скорость течения реки
    U км/ч (U < V). Время движения лодки по озеру T1 ч, а по реке (про- тив течения) – T2 ч. Определить путь S, пройденный лодкой.
    18. Дана сторона равностороннего треугольника. Найти площадь этого треугольника и радиусы вписанной и описанной окружностей.
    19. Известно количество жителей в государстве и площадь его тер- ритории. Определить плотность населения в этом государстве.
    20. Найти площадь кольца, внутренний радиус которого равен R1, а внешний радиус равен R2 (R1 < R2).
    21. Вычислить периметр и площадь прямоугольного треугольника по заданным длинам двух катетов a и b.
    22. Заданы координаты трех вершин треугольника (x
    1
    , y
    1
    ), (x
    2
    , y
    2
    ),
    (x
    3
    , y
    3
    ). Найдите его периметр и площадь.
    23. Вычислить длину окружности и площадь круга одного и того же заданного радиуса R.
    24. Найти произведение цифр заданного четырехзначного числа.
    25. Даны два числа. Найти среднее арифметическое кубов этих чи- сел и среднее геометрическое модулей этих чисел.
    26. Даны два действительных числа x и y. Вычислить их сумму, разность, произведение и частное.
    27. Даны длины ребра куба. Найти площадь грани, площадь пол- ной поверхности и объем этого куба.
    28. Дана сторона равностороннего треугольника. Найти площадь этого треугольника, его высоту, радиусы вписанной и описанной окружностей.
    29. Известна длина окружности. Найдите площадь круга, ограни- ченного этой окружностью.
    30. Найти площадь кольца, внутренний радиус которого равен r, а внешний – заданному числу R (R>r).
    31. Треугольник задан величинами своих углов и радиусом описан- ной окружности. Найти стороны треугольника.
    32. Найти площадь равнобедренной трапеции с основани- ем a и b и углом α при большем основании а.
    33. Найти площадь треугольника, две стороны которого равны a и b, а угол между ними g.
    34. Найти сумму членов арифметической прогрессии, если извест- ны ее первый член, знаменатель и число членов прогрессии.
    35. Найти все углы треугольника, если известны его стороны.
    Предусмотреть в программе перевод радианной меры углов в градусы, минуты и секунды.
    36. Составить программу вычисления объема цилиндра и конуса, которые имеют одинаковую высоту H и одинаковый радиус основания R.
    18


    написать администратору сайта