Pascal Решить Задачку

Тема в разделе "Pascal and Delphi", создана пользователем antosha, 27 дек 2012.

  1. antosha

    antosha Гость

    Задача№1"Написать программу, которая выводит на экран не бракованные детали из поступившей партии, содержащей N деталей. Не бракованной считается деталь, размер которой отличается от эталонного не более чем k мм.
    Задача№2"Написать программу, которая формирует новый массив,элементами которого являются все четные элементы, расположенные в нечетных ячейках заданного массива.
    Заранее благодарен!!!!
     
  2. sinkopa

    sinkopa Well-Known Member

    Регистрация:
    17 июн 2009
    Сообщения:
    344
    Симпатии:
    9
    Хм... Вы не уточнили: какой у Вас Паскаль и как входные данные (массивы) должны заполняться...
    Поэтому всё "по минимуму", на статических массивах и заполняется рандомом.
    Код (Delphi):
    program detales;

    const
    N = 20; // размер партии
    var
    batch: array[1..N] of Real;
    model: Integer;
    deviation: Integer;
    i,j,dev: Integer;
    begin
    Writeln;
    Writeln('Obshee kolichestvo detaley v partii "N" (sht): ',N);
    Writeln;
    Write('Vvedite etalonniy razmer detali [1 - 100](cm) : ');
    Readln(model);
    Write('Vvedite dopustimoe otklonenie "K" [1 - 9](mm) : ');
    Readln(deviation);
    Writeln;

    Randomize;
    dev := (deviation+5)*2; // отклонение в обе стороны + 10 мм на брак :-)

    Writeln('============ Partiya postupivshih tovarov =================');
    for i := 1 to N do
    begin
    batch[i] := model + (Random(dev) - deviation) /10;

    if (i mod 5 = 0) then  // Выводим (по 5 элементов в строку, через знак табуляции #9)
    Writeln('T[',i,'] = ',batch[i]:6:1,';')
    else
    Write('T[',i,'] = ',batch[i]:6:1,';',#9);
    end;
    Writeln;
    Writeln('============ Kachestvennie tovary =================');

    j := 1;
    for i := 1 to N do
    begin
    if (abs(model - batch[i]) <= deviation/10) then
    begin
    if (j mod 5 = 0) then
    Writeln('T[',i,'] = ',batch[i]:6:1,';')
    else
    Write('T[',i,'] = ',batch[i]:6:1,';',#9);
    Inc(j);
    end;
    end;
    Writeln;
    Writeln('============  Brakovannie tovary =================');

    j := 1;
    for i := 1 to N do
    begin
    if (abs(model - batch[i]) > deviation/10) then
    begin
    if (j mod 5 = 0) then  // Выводим (по 5 элементов в строку, через знак табуляции #9)
    Writeln('T[',i,'] = ',batch[i]:6:1,';')
    else
    Write('T[',i,'] = ',batch[i]:6:1,';',#9);
    Inc(j);
    end;
    end;
    Writeln;
    Writeln('Zakonchili. Nazmite <ENTER> dlya vihoda');
    Writeln;
    Readln;
    end.
    Код (Delphi):
    program arrays;

    const
    N = 25; // размер заданного массива
    var
    K: Integer; // типа размер нового массива
    A: array[1..N] of Integer; // заданный массив
    B: array[1..N] of Integer; // новый массив
    C: array[1..N] of Integer; // индесы из заданного массива
    i: Integer;
    begin
    Writeln;

    Randomize;

    Writeln('============ Zadan massiv "A" iz ',N,' elementov =================');
    for i := 1 to N do
    begin
    A[i] := Random(100);

    if (i mod 5 = 0) then  // Выводим (по 5 элементов в строку, через знак табуляции #9)
    Writeln('A[',i,'] = ',A[i],';')
    else
    Write('A[',i,'] = ',A[i],';',#9);
    end;
    Writeln;

    K := 0;
    for i := 1 to N do // формируем новый массив
    begin
    if (i mod 2 <> 0) then // нечетная ячейка
    begin
    if (A[i] mod 2 = 0) then // четное значение элемента
    begin
    Inc(K);   // увеличиваем размер нового массива
    B[K] := A[i]; // записываем значение
    C[K] := i;  // запоминаем индекс (будем потом показывать откуда взяли)
    end;
    end;
    end;
    Writeln;

    Writeln('============ Noviy massiv "B" iz ',K,' elementov =================');

    for i := 1 to K do
    begin
    if (i mod 3 = 0) then  // Выводим (по 3 элемента в строку, через знак табуляции #9)
    Writeln('B[',i,'] = ',B[i],' (A[',C[i],'])')
    else
    Write('B[',i,'] = ',B[i],' (A[',C[i],'])',#9);
    end;
    Writeln;
    Writeln;
    Writeln('Zakonchili. Nazmite <ENTER> dlya vihoda');
    Writeln;
    Readln;
    end.
     
Загрузка...

Поделиться этой страницей