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

  • (как выполнять)

  • (как должно выглядеть)

  • Программирование. Программа на языке Паскаль состоит из заголовка, разделов описаний и раздела операторов. Заголовок программы содержит имя программы, например Program prim


    Скачать 42.8 Kb.
    НазваниеПрограмма на языке Паскаль состоит из заголовка, разделов описаний и раздела операторов. Заголовок программы содержит имя программы, например Program prim
    Дата31.08.2022
    Размер42.8 Kb.
    Формат файлаdocx
    Имя файлаПрограммирование.docx
    ТипПрограмма
    #657534

    Вариант 10

    Задание 1. Ввести значения четырех чисел x1, x2, x3, x4. Вычислить значения переменных y1, y2, y3, z (если это возможно) при условии, что:

    ; ; ; .

    Значения y1, y2, y3, z вывести на экран.

    (как выполнять) Программа на языке Паскаль состоит из заголовка, разделов описаний и раздела операторов. Заголовок программы содержит имя программы, например:

    Program PRIM;

    Описания могут включать в себя:

    • раздел подключаемых библиотек (модулей);

    • раздел описания меток;

    • раздел описания констант;

    • раздел описания типов;

    • раздел описания переменных;

    • раздел описания процедур и функций.

    Раздел операторов представляет собой составной оператор, который содержит между служебными словами

    begin.......end

    последовательность операторов. Операторы отделяются друг от друга символом ;. Текст программы заканчивается символом точка.

    Кроме описаний и операторов Паскаль - программа может содержать комментарии, которые представляют собой произвольную последовательность символов, расположенную между открывающей скобкой комментариев { и закрывающей скобкой комментариев }.

    Для ввода исходных данных чаще всего используется процедура ReadLn:

    ReadLn(A1,A2,...AK);

    Процедура производит чтение К значений исходных данных и присваивает эти значения переменным А1, А2, ..., АК.

    При вводе исходных данных происходит преобразование из внешней формы представления во внутреннюю, определяемую типом переменных. Переменные, образующие список ввода, могут принадлежать либо к целому, либо к действительному, либо к символьному типам. Чтение исходных данных логического типа в языке Паскаль недопустимо.

    Значения исходных данных могут отделяться друг от друга пробелами и нажатием клавиш табуляции и Enter.

    Не допускается разделение вводимых чисел запятыми.

    Для вывода результатов работы программы на экран используются процедуры:

    Write(A1,A2,...AK);

    WriteLn(A1,A2,...AK);
    Первый из этих операторов производит вывод значений переменных А1, А2,...,АК в строку экрана. Второй оператор, в отличие от первого, не только производит вывод данных на экран, но и производит переход к началу следующей экранной строки. Если процедура writeln используется без параметров, то она просто производит пропуск строки и переход к началу следующей строки.

    Оператор условного перехода в Турбо Паскаль имеет вид:

    if условие then оператор 1 else оператор 2;

    условие - это логическое выражение, в зависимости от которого выбирается одна из двух альтернативных ветвей алгоритма. Если значение условия истинно (TRUE), то будет выполняться оператор 1, записанный после ключевого слова then. В противном случае будет выполнен оператор 2, следующий за словом else, при этом оператор 1 пропускается. После выполнения указанных операторов программа переходит к выполеннию команды, стоящей непосредственно после оператора if.

    Необходимо помнить, что перед ключевым словом else точка с запятой никогда не ставится.

    else - часть в операторе if может отсутствовать:

    if условие then оператор 1;

    Тогда в случае невыполнения логического условия управление сразу передается оператору, стоящему в программе после конструкции if.
    (как должно выглядеть)

    program lab2;

    uses crt;

    var x1, x2, x3, x4, y1, y2, y3, y4, z: real;

    t:boolean;

    begin

    writeln('введите х1');

    readln(x1);

    writeln('введите х2');

    readln(x2);

    writeln('введите х3');

    readln(x3);

    writeln('введите х4');

    readln(x4);

    t:=true;

    if ((x1*x3)>=0) and (((x1*x3)-5)<>0) then

    begin

    y1:=1/((sqrt(x1*x3)-5)); writeln('y1=',y1);

    end

    else

    begin

    t:=false; writeln('у1-вычислить невозможно');

    end;

    writeln;

    readln;

    if (cos(5*(x2))>0) then

    begin

    y2:=ln(cos(5*x2)); writeln('y2=',y2);

    end

    else

    begin

    t:=false; writeln('y2-вычислить невозможно');

    end;

    writeln;

    readln;

    if (10-x3)<>0 then

    begin

    y3:=exp(sqr(-5/(10-x3))); writeln('y3=',y3);

    end

    else

    begin

    t:=false; writeln('y3-вычислить невозможно');

    end;

    writeln;

    readln;

    if ((2*x2*x2-4*x4)>0) and ((sqrt(2*x2*x2-4*x4))>0) then

    begin

    y4:=ln(sqrt(2*(x2*x2)-4*x4)); writeln('y4=',y4);

    end

    else

    begin

    t:=false; writeln('y4-вычислить невозможно');

    end;

    writeln;

    readln;

    if (true) then

    begin

    if (y1*y2*y3*y4)<>0 then

    begin

    z:=y1*y2*y3*y4; writeln('z=',z);

    end

    else writeln('z-вычислить невозможно');

    writeln;

    readln;

    readln;

    readln;

    end;

    end.

    Тестовый пример


    x1=0, x2=0, x3=0, x4=0;

    y1= -2.0000000000E-01;

    y2=0.0000000000E-00;

    y3=1.2840254167E+00;

    y4-вычислить невозможно;

    z-вычислить невозможно.

    Задание 2.

    Составить программу нахождения первого положительного члена последовательности an = (n3 – 14n)/n!, n = 1, 2, 3,… . Вывести его значение и номер. Найти произведение всех отрицательных членов последовательности. Вывести результат на экран.

    (как выполнять)

    В большинстве задач, встречающихся на практике, необходимо производить многократное выполнение некоторого действия. Такой многократно повторяющийся участок вычислительного процесса называется циклом. Если заранее известно количество необходимых повторений, то цикл называется арифметическим. Если же количество повторений заранее неизвестно, то говорят об итерационном цикле. В итерационных циклах производится проверка некоторого условия, и в зависимости от результата этой проверки происходит либо выход из цикла, либо повторение выполнения тела цикла. Если проверка условия производится перед выполнением блока операторов, то такой итерационный цикл называется циклом с предусловием (цикл «пока»), а если проверка производится после выполнения тела цикла, то это цикл с постусловием (цикл «до»).

    Структура оператора while…do выглядит так:

    while выражение do оператор

    Оператор после do будет выполняться до тех пор, пока логическое выражение принимает истинное значение (True). Логическое выражение является условием возобновления цикла. Его истинность проверяется каждый раз перед очередным повторением оператора цикла, который будет выполняться лишь до тех пор, пока логическое выражение истинно. Как только логическое выражение принимает значение ложь (False), осуществляется переход к оператору, следующему за while. Выражение оценивается до выполнения оператора, так что если оно с самого начала было ложным (False), то оператор не будет выполнен ни разу. Здесь также следует помнить, что позволяется использовать только один оператор после ключевого слова do. Если необходимо выполнить группу операторов, то стоит использовать составной оператор.

    Структура оператора repeat…until выглядит так:

    repeat

    оператор;

    оператор;

    ...

    оператор

    until выражение

    Операторы между словами repeat и until повторяются, пока логическое выражение является ложным (False). Как только логическое выражение становится истинным (True), происходит выход из цикла. Так как выражение оценивается после выполнения операторов, то в любом случае операторы выполнятся хотя бы один раз. Обратите внимание: пара REPEAT...UNTIL подобна операторным скобкам begin. .. end, поэтому перед UNTIL ставить точку с запятой необязательно.

    Для гибкого управления циклическими операторами WHILE и REPEAT в состав Турбо Паскаля включены две процедуры:

    BREAK - реализует немедленный выход из цикла; действие процедуры заключается в передаче управления     оператору, стоящему сразу за концом циклического оператора;

    CONTINUE - обеспечивает досрочное завершение очередного прохода цикла; эквивалент передачи управления в самый конец циклического оператора.

    Введение в язык этих процедур практически исключает необходимость использования операторов безусловного перехода GOTO.

    (как должно выглядеть)

    program lab3;

    uses crt;

    var n:integer; sum,a,b:real; begin

    clrscr;

    sum:=0; n:=1;

    while a>=0 do

    begin

    n:=n+1; a:=(10*n-n*n*n)/n*n; sum:=sum+a;

    end;

    b:=sin(sum-a); writeln('n=',n); writeln('a=',a);

    writeln('sum=',sum); writeln('b=',b);

    readln;

    end.

    program lab31;

    uses crt;

    const sum=1;

    E=0.0001; var t, n, a;

    begin

    crlscr

    t:=0;

    n:=1;

    repeat

    begin

    n:=n+1;

    a:=1/(n*(n+1));

    t:=t+1;

    end;

    until

    writeln('t=',t);

    readln;

    end;

    end.

    Задание 3.

    Заполнить матрицу 10х10 следующим образом:



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

    (как выполнять)

    Массив представляет собой фиксированное количество упорядоченных однотипных компонентов, снабженных индексами. Структура массива может быть линейной, табличной или, в общем случае,n-мерной. Единственное ограничение – общий размер этой структуры не должен превышать 65520 байт. Оперировать можно как с отдельными компонентами массива, так и с массивом в целом. Чтобы задать тип-массив, используется зарезервированное слово array, которое указывает, что переменная является массивом. После него следует указать тип индекса (индексов) компонентов (в квадратных скобках) и далее после слова of – тип самих компонентов:

    Type

    <имя типа> = array[<тип индекса (индексов)>] of

    <тип компонент>;

    Введя тип-массив, можно затем задать переменные или типизированные константы этого типа.

    Компоненты массива могут быть любого, в том числе и структурированного типа, индекс (индексы) может быть любого порядкового типа, кроме Longing. Размер массива в Паскале должен быть определен на этапе компиляции, поэтому диапазон всегда задается через конкретные значения, или, через определенную ранее константу.

    При задании значений константе-массиву компоненты указываются в круглых скобках и разделяются запятыми, причем, если массив многомерный, круглые внешние скобки соответствуют левому индексу, вложенные в них круглые скобки – следующему индексу и т.д.

    Доступ к компонентам массива осуществляется указанием имени массива, за которым в квадратных скобках помещается значение индекса (индексов) компоненты.

    Для массивов в целом, при совпадении типа двух массивов, определена операция присвоения одному массиву другого. Логические операции сравнения для массивов не определены. Массивы, как и записи, не могут использоваться в качестве возвращаемого функцией значения.

    Переменная-массив, компоненты которой опять же массивы, называется матрицей.

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

    Классическими примерами для демонстрации возможностей массивов являются задачи сортировки и поиска.

    Все методы сортировки можно разделить на две большие группы:

    • прямые методы сортировки;

    • улучшенные методы сортировки.

    Улучшенные методы сортировки основываются на тех же принцах, что и прямые, но используют некоторые оригинальные для ускорения процесса сортировки. Прямые методы на практике используются крайне редко, так как имеют относительно низкое быстродействие.

    (как должно выглядеть)

    program lab4;

    uses crt;

    var A:array[1..10,1..10] of integer; i,j,n:integer;

    begin

    clrscr;

    writeln('вывести матрицу размерностью 10х10');

    for i:=1 to 10 do

    for j:=1 to 10 do

    begin

    if i=j then A[i,j]:=i

    else

    begin

    if i
    else

    A[i,j]:=0; end;

    end;

    for i:=1 to 10 do

    begin

    for j:=1 to 10 do

    write(A[i,j]:3);

    writeln;

    writeln;

    end;

    for i:=1 to 10 do

    begin

    for j:=1 to 10 do

    if (A[i,j]<>0) and (j mod 2=1) then

    begin

    n:=n+1;end; end; writeln('n=',n); readln; end.

    Задание 4.

    Составить программу на языке программирования Паскаль, вызывающую процедуру или функцию, позволяющую решить следующую задачу: даны вещественные 20 элементные массивы a1, a2, …, a20, b1, b2, …, b20 и c1, c2, …, c20. Получить и вывести на экран:

    при min(ai) < max(bi),

    Т =

    max(bi + ci) + min(ci), иначе.

    (как выполнять)

    Важным принципом современного программирования является принцип модульности. В модульной программе отдельные ее части, предназначенные для решения каких-либо частных задач, организованы в подпрограммы. В такой организации есть два больших преимущества. Во-первых, один и тот же фрагмент можно использовать многократно как в одной, так и в разных программах, не набирая его текст заново. Во-вторых, программы лучше писать небольшими частями. Такие программы легче читать, тестировать и отлаживать. У них, как правило, более четкая логическая структура.

    В языке Паскаль модульность обеспечивается использованием подпрограмм-функций и подпрограмм-процедур.

    Описание подпрограммы-функции должно располагаться в разделе описаний, то есть между заголовком программы (или другой подпрограммы) и зарезервированным словом begin. Описание подпрограммы-функции начинается с заголовка, который имеет вид:

    Function name_of_function(список параметров):type_of_result:

    Здесь идентификатор типа результата type_of_result описывает тип значения, носителем которого является идентификатор (имя) функции name_of_function. Список параметров содержит перечисление идентификаторов переменных – параметров функции. Эти параметры используются для передачи данных в подпрограмму-функцию. После имени переменной или группы имен следует двоеточие и идентификатор типа переменных из этой группы. Список параметров может отсутствовать.

    Внутренняя структура подпрограммы-функции аналогична структуре программы.

    Обращение к подпрограмме-функции производится просто путем указания ее имени в составе какого либо выражения. Это может быть арифметическое выражение, если функция арифметическая.

    Процедура похожа на функцию. Это фрагмент программы, начинающийся заголовком procedure, имеющий разделы описаний и операторов и завершающийся словом end. Заголовок процедуры имеет вид:

    Procedure name_of_ procedure(список параметров):

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

    Для того чтобы вызвать процедуру и выполнить операции, содержащиеся в ее описании, следует разместить в соответствующем месте программы имя процедуры со списком фактических переменных.

    (как должно выглядеть) Не нашла…


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