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

  • Результат выполнения

  • Листинг программы

  • Результат выполнения Введите индекс:410000Индекс совпал!Введите индекс:123456Индекс не совпал!Листинг программы

  • Результат выполнения Введите основание:10Введите высоту:201/20 площади треугольника=5Листинг программы

  • Результат выполнения Введите N:5S(5)=0.176161649722379Введите N:0S(0)=0Листинг программы

  • информатика. Информатика. Программа Matrix сначала вводит параметр N, затем при помощи процедуры InputMatrix вводится с клавиатуры матрица Х. При помощи функции norma вычисляется значение норма матрицы Х, которое запоминается в переменной


    Скачать 48.28 Kb.
    НазваниеПрограмма Matrix сначала вводит параметр N, затем при помощи процедуры InputMatrix вводится с клавиатуры матрица Х. При помощи функции norma вычисляется значение норма матрицы Х, которое запоминается в переменной
    Анкоринформатика
    Дата26.01.2022
    Размер48.28 Kb.
    Формат файлаdocx
    Имя файлаИнформатика.docx
    ТипПрограмма
    #343061



    Введение





    1.Задание 1 3

    2. Задание 2 9

    3. Задание 3 13

    4. Задание 4 16

    5. Задание 5 19

    Список использованных источников 22




    1. Задание 1



    Задана матрица X размерности N. Построить таблицу значений функции , z изменяется от 1 до 5 с шагом 0,5; с – норма матрицы Х, т.е. , i = l, 2, ..., n.
    Решение. В задании не указано, что матрица Х является квадратной, но указан только один параметр N, определяющий размерность матрицы. В формуле для вычисления нормы матрицы для параметра j указан конкретный диапазон изменения индекса (от 1 до 10). Поэтому будем считать, что матрица Х имеет N строк и 10 столбцов.

    Тип элементов матрицы не указан, будем считать, что задана матрица из действительных чисел.

    Программа Matrix сначала вводит параметр N, затем при помощи процедуры InputMatrix вводится с клавиатуры матрица Х. При помощи функции norma вычисляется значение норма матрицы Х, которое запоминается в переменной с.

    При вычислении нормы в функции norma применяется станедартный способ вычисления суммы и максимума элементов. Поскольку производится суммирование элементов по абсолютной величине, сумма каждой строки не может быть отрицательной. Поэтому за начальное значение максимума можно взять 0.

    Параметр z меняется с шагом 0.5, поэтому нельзя непосредственно применить цикл for. Но можно ввести вспомогательную величину h=2z, которая меняется с шагом 1. Это позволит использовать цикл for с параметром h. В этом цикле для заданного h вычисляются величины z=h/2, y=c/z. Значения z и y выводятся на экран.

    Блок-схема


    МATRIX



    Ввести N



    InputMatrix






    Вычислить норму

    c=norma

    Цикл h

    от 2 до 10








    z=h/2

    y=c/z






    Вывести z

    Вывести y







    Увеличить
    h на 1

    КОНЕЦ





    Рисунок 1.1

    InputMatrix


    Цикл i от 1 до N

    Цикл j от 1 до 10


    Увеличить i на 1

    Увеличить j на 1


    Ввести Xi j

    КОНЕЦ



    Р
    norma

    исунок 1.2

    max=0

    Цикл i

    от 1 до N

    s=0

    Цикл j

    от 1 до 10

    s=s+|Хi j|

    s>max

    max=s

    да

    нет

    Увеличить j на 1

    Увеличить i на 1

    Вернуть max




    Рисунок 1.3




    Результат выполнения
    Введите размерность N:

    2

    Введите матрицу X:

    X[1,1]=1

    X[1,2]=2

    X[1,3]=3

    X[1,4]=4

    X[1,5]=5

    X[1,6]=6

    X[1,7]=7

    X[1,8]=8

    X[1,9]=9

    X[1,10]=0

    X[2,1]=1.4

    X[2,2]=2.7

    X[2,3]=8.8

    X[2,4]=45

    X[2,5]=55

    X[2,6]=8.9

    X[2,7]=3

    X[2,8]=9.0

    X[2,9]=3.1

    X[2,10]=12

    z y

    1.0 148.90000

    1.5 99.26667

    2.0 74.45000

    2.5 59.56000

    3.0 49.63333

    3.5 42.54286

    4.0 37.22500

    4.5 33.08889

    5.0 29.78000

    Листинг программы
    PROGRAM Matrix;

    CONST

    Nmax=10; {максимальное количество строк}

    M=10; {количество столбцов матрицы}

    TYPE

    Matrix=array [1..Nmax, 1..M] of real;

    VAR

    X: Matrix; {исходная матрица}

    N: integer; {количество строк матрицы}

    c: real; {норма матрицы}

    h: integer;

    z,y: real;

    {ввод матрицы}

    PROCEDURE InputMatrix;

    Var i,j:integer;

    BEGIN

    for i:=1 to N do

    for j:=1 to M do begin

    write('X[',i,',',j,']=');

    readln(X[i,j])

    end;

    END;
    {вычисление нормы}

    FUNCTION norma:real;

    Var i,j:integer;

    max: real;

    s :real;

    BEGIN

    max:=0; {текущий максимум}

    {перебор всех строк}

    for i:=1 to N do begin

    s:=0;{текущая сумма строки}

    for j:=1 to M do s:=s+abs(X[i,j]);

    {корректировка текущего максимума}

    if s>max then max:=s;

    end;

    norma:=max;

    END;
    BEGIN

    writeln('Введите размерность N:');

    readln(N);

    writeln('Введите матрицу X:');

    InputMatrix;

    c:=norma; {вычисление нормы матрицы}

    writeln(' z ','y':7);

    for h:=2 to 10 do begin

    z:= h/2;

    y:=c/z;

    writeln(z:5:1,' ',y:10:5);

    end;

    END.

    2. Задание 2



    y(x) = , для x[-3;3], hx = 1,2.
    Решение. Будем считать, что в этом задании требуется вывести на экран все значения величины x из отрезка [–3; 3] с шагом hx=1.2 и величину y(x).

    Все переменные в этой программе будут вещественные (типа real). Для вычисления y(x) напишем отдельную функцию f(x), где применим ветвление (условный оператор) для разбора случаев.

    Поскольку шаг изменения переменной x равен hx=1.2 , применить оператор for нельзя. Будем использовать цикл while. В этом цикле будем вычислять y=f(x) и выводить на экран текущее значение x и вычисленное y.


    Блок-схема


    YX



    x= –3







    Вывести заголовок






    нет




    x ≤ 3







    да


    Вычислить

    y=f(x)




    Вывести x

    Вывести y







    x= x+hx





    КОНЕЦ


    Рисунок 2.1

    f(x)




    x ≤ 0

    да

    нет

    f= 1– x2 + x/2


    f= x/2


    Вернуть f

    Рисунок 2.2




    Результат выполнения

    x y

    -3.000 -9.50000

    -1.800 -3.14000

    -0.600 0.34000

    0.600 0.30000

    1.800 0.90000

    3.000 1.50000

    Листинг программы
    PROGRAM YX;

    CONST

    h=1.2; {шаг по х}

    VAR

    x,y:real;
    FUNCTION f(x:real):real;

    begin

    if x<=0 then f:=1-x*x+x/2

    else f:=x/2;

    end;
    BEGIN

    x:=-3;{начальное значение х}

    writeln(' x','y':10);{заголовок}

    while x<=3 do begin

    y:=f(x);

    writeln(x:6:3,' ',y:10:5);

    x:=x+h;

    end;

    END.

    3. Задание 3



    Написать программу, в которой:

    a. запрашивается почтовый индекс студента,

    b. сравнивается введенная информация со значением строковой переменной (заданным в программе),

    c. выводится на экран сообщение (совпал или не совпал индекс)

    Решение. Сначала в программе в строковую переменную Index вводится индекс студента с клавиатуры. Затем в операторе ветвления происходит сравнение строковых величин: введенной и заданной в программе. В зависимости от результатов сравнения выдается текстовое сообщение.


    CmpIndex







    Ввести Index

    Index=MainIndex

    нет

    да

    Вывести

    «Индекс совпал!»

    Вывести

    «Индекс не совпал!»

    КОНЕЦ

    Рисунок 3.1




    Результат выполнения
    Введите индекс:410000

    Индекс совпал!

    Введите индекс:123456

    Индекс не совпал!

    Листинг программы
    PROGRAM CmpIndex;

    CONST

    MainIndex='410000';

    VAR

    Index:string;

    BEGIN

    write(' Введите индекс:');readln(Index);

    if Index=MainIndex then writeln(' Индекс совпал!')

    else writeln(' Индекс не совпал!')

    END.

    4. Задание 4



    Написать программу для нахождения 1/20 площади равнобедренного треугольника по основанию и высоте.


    Решение. Необходимо в программе ввести два вещественных числа – длину основания a и длину высоту h треугольника. Площадь (любого) треугольника с основанием a и высотой h, проведенной к этому основанию, определяется по формуле

    S=0.5ah

    Условие задачи о равнобедренности треугольника излишне, формула справедлива для любого треугольника.

    Необходимо найти 1/20 площади треугольника, что дает формулу

    S20=0.5ah/ 20

    Для наглядности не будем сворачивать константы.

    В программе вводятся с клавиатуры две вещественные величины a и h. По указанной формуле вычисляется 1/20 площади, результат выводится на экран.
    Блок-схема


    Triangle





    Ввести a

    Ввести h






    S = 0.5ah/ 20




    Вывести S






    КОНЕЦ



    Рисунок 4.1



    Результат выполнения
    Введите основание:10

    Введите высоту:20

    1/20 площади треугольника=5


    Листинг программы
    PROGRAM Triangle;

    VAR

    a, {основание треугольника}

    h: real; {высота треугольника}

    S: real; {площадь треугольника}

    BEGIN

    write('Введите основание:');readln(a);

    write('Введите высоту:');readln(h);

    S:=0.5*a*h/20;

    writeln('1/20 площади треугольника=', S);

    END.

    5. Задание 5



    Написать программу для нахождения значения переменной S по формуле:
    Решение. Целое число N является исходными данными этой программы. Это число вводится с клавиатуры. На i-й итерации цикла for вычисляется очередное слагаемое sin (i) и прибавляется к текущему значению суммы S.

    По окончании цикла значение S выводится на экран.
    Блок-схема

    Sinus






    Ввести N





    Цикл i

    от 1 до N




    S=0








    S=S+sin(i)






    Вывести S




    Увеличить
    i на 1



    КОНЕЦ


    Рисунок 5.1

    Результат выполнения
    Введите N:5

    S(5)=0.176161649722379

    Введите N:0

    S(0)=0
    Листинг программы

    PROGRAM Sinus;

    VAR

    N:integer; {количество слагаемых}

    S:real; {сумма синусов}

    i:integer;

    BEGIN

    write('Введите N:');readln(N);

    S:=0;

    for i:=1 to N do S:=S+sin(i);

    writeln('S(',N,')=',S);

    END.

    Список использованных источников



    1. Рубанцев В. Занимательные уроки с паскалем, или Pascal для начинающих — Самоиздат, 2013.

    2. Лукин С.Н. Turbo Pascal 7.0. Самоучитель для начинающих, 2-е издание. — Диалог-МИФИ, 1999.

    3. Деревенец О.В. Песни о паскале. [Электронный ресурс]: 2011, Режим доступа: http://oleg.derevenets.com/index.html, свободный.


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