Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » Задачи на Pascal/Object Pascal/Free Pascal (Delphi/Lazarus)

Модерирует : ShIvADeSt

 Версия для печати • ПодписатьсяДобавить в закладки
На первую страницук этому сообщениюк последнему сообщению

Открыть новую тему     Написать ответ в эту тему

BrdGuest



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Код:
1.
Program p1;
{
    1. Вычислить и вывести на экран значение функции Y.
       Исходные данные X, A и B ввести с клавиатуры.
       y=tgx*a(b+1)*ln(a+b)
}
 
Function Y(x, a, b: Real): Real;
Begin
    {
          Обработку недопустимых значений x, a, b реализуешь как-нибудь
          сам (x <> Pi/2 + n*Pi, (a+b) > 0, переполнение типа Real)
    }
    Y := Sin(x) / Cos(x) * a * (b + 1) * Ln(a + b);
End;
 
Var
    x, a, b: Real;
Begin
    Write('x = ');
    ReadLn(x);
    Write('a = ');
    ReadLn(a);
    Write('b = ');
    ReadLn(b);
 
    WriteLn('Y(x, a, b) = ', Y(x, a, b):12:12);
 
    ReadLn;
End.
 
 
2.
Program p2;
{
    2. Если сумма трех различных действительных чисел x, y, z меньше
       единицы, то наименьшее из этих трех чисел заменить полусуммой
       двух других, в противном случае возвести все числа в квадрат.
}
 
Var
    x, y, z: Real;
 
Begin
    Write('Vvedite x: ');
    ReadLn(x);
    Write('Vvedite y: ');
    ReadLn(y);
    Write('Vvedite z: ');
    ReadLn(z);
 
    If x + y + z < 1.0 Then
        If x < y Then
            If x < z Then
                x := (y + z) / 2.0
            Else
                z := (x + y) / 2.0
        Else
            If y < z Then
                y := (x + z) / 2.0
            Else
                z := (x + y) / 2.0
    Else
    Begin
        x := x * x;
        y := y * y;
        z := z * z;
    End;
 
    WriteLn('x = ', x:12:12);
    WriteLn('y = ', y:12:12);
    WriteLn('z = ', z:12:12);
 
    ReadLn;
End.
 
 
3.
Program p3;
{
    3. Для заданных значений x, y написать программу вычисления числа:
       Здесь и далее min(x,y) - минимальное из чисел x и y, max(x,y) -
       максимальное из чисел x и y.      
       Z=(min(x,y)+0,5) / (1+max2(x,y))
}
 
Function min(x, y: Real): Real;
Begin
    If x < y Then min := x
    Else min := y;
End;
 
Function max(x, y: Real): Real;
Begin
    If x > y Then max := x
    Else max := y;
End;
 
Function Z(x, y: Real): Real;
Begin
    Z := (min(x, y) + 0.5) / (1 + Sqr(max(x, y)));
End;
 
Var
    x, y: Real;
 
Begin
    Write('Vvedite x: ');
    ReadLn(x);
    Write('Vvedite y: ');
    ReadLn(y);
 
    WriteLn('Z = ', Z(x, y):12:12);
 
    ReadLn;
End.
 
 
6.
Program p6;
{
    6. Даны натуральное n, действительные числа a1, … , an
       (все числа попарно различны). Поменять в этом массиве
       местами наименьший и последний элементы.
}
 
Const
    n = 20;
 
Var
    a: Array [1..n] Of Integer;
    i: Integer;
    IndexMin: Integer; { индекс (в массиве) минимального элемента }
 
Begin
    { Заполняем массив псевдослучайными числами от 0 до 999 }
    Randomize;
    For i := 1 To n Do a[i] := Random(1000);
 
    { Ищем наименьший элемент (после цикла a[IndexMin] будет наименьшим) }
    IndexMin := n;
    For i := n - 1 Downto 1 Do
    Begin
        If a[i] < a[IndexMin] Then IndexMin := i;
    End;
 
    WriteLn('Massiv do izmeneniy:');
    For i := 1 To n Do Write(a[i]:4);
    WriteLn;
 
    i := a[IndexMin];
    a[IndexMin] := a[n];
    a[n] := i;
 
    WriteLn('Massiv posle izmeneniy:');
    For i := 1 To n Do Write(a[i]:4);
    WriteLn;
 
    ReadLn;
End.
 
 
7.
Program p7;
{
    7. Дана целочисленная квадратная матрица размером n*m.
       Написать программу, позволяющую поменять местами
       элементы, расположенные в верхней и нижней четвертях,
       ограниченные главной и побочной диагоналями (за исключением
       элементов, расположенных на диагоналях).
}
 
Const
    N = 7;
 
Var
    matrix: Array [1..N, 1..N] Of Integer;
    i, j, Temp: Integer;
 
Begin
    { Заполняем матрицу псевдослучайными числами от 0 до 999 }
    Randomize;
    For i := 1 To N Do
        For j := 1 To N Do
            matrix[i][j] := Random(1000);
 
    WriteLn('Matritsa do izmeneniy:');
    For i := 1 To N Do
    Begin
        For j := 1 To N Do Write(matrix[i][j]:4);
        WriteLn;
    End;
 
    For i := 1 To N Div 2 Do
        For j := i + 1 To N - i Do
        Begin
            Temp := matrix[i][j];
            matrix[i][j] := matrix[N - i + 1][j];
            matrix[N - i + 1][j] := Temp;
        End;
 
    WriteLn('Matritsa posle izmeneniy:');
    For i := 1 To N Do
    Begin
        For j := 1 To N Do Write(matrix[i][j]:4);
        WriteLn;
    End;
 
    ReadLn;
End.

Всего записей: 43 | Зарегистр. 07-12-2007 | Отправлено: 13:03 14-12-2007
Открыть новую тему     Написать ответ в эту тему

На первую страницук этому сообщениюк последнему сообщению

Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » Задачи на Pascal/Object Pascal/Free Pascal (Delphi/Lazarus)


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2024

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru