Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Паскаль, Turbo Pascal, PascalABC.NET
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 23.10.2022, 12:59   #1
Павел1223
Новичок
Джуниор
 
Регистрация: 23.10.2022
Сообщений: 1
По умолчанию Помогие пожалуйста срочно

Нужно написать код для Паскаля:
1) Найти произведение номеров максимального и минимального элементов массива А[20]. Массив заполнить случайными числами из отрезка [-8, 30].
2) Заполнить массив A[10] с клавиатуры. Найти минимальное двузначное число в этом массиве.
Павел1223 вне форума Ответить с цитированием
Старый 23.10.2022, 14:08   #2
digitalis
Старожил
 
Аватар для digitalis
 
Регистрация: 04.02.2011
Сообщений: 4,657
По умолчанию

Учитель, зачем вы мне такую сложную задачку задаёте? Лучше что-то вроде 2*2=4.
Это намёк, что, как пелось в древней песне, нужно "задачи решать самому". А то в бо'шке ничего не отложится.
Ну и как можно помочь человеку, который читать не умеет?
https://programmersforum.ru/misc.php?do=showrules п.4.1.
--------
Надеюсь, преподы читают этот форум. И "решившему" таким способом "гусь" обеспечен.

Последний раз редактировалось digitalis; 23.10.2022 в 14:12.
digitalis вне форума Ответить с цитированием
Старый 23.10.2022, 14:12   #3
newerow1989
Я самый любопытный
Участник клуба
 
Аватар для newerow1989
 
Регистрация: 24.07.2012
Сообщений: 1,951
По умолчанию

Код:
var a: array[1..20] of integer;
    i, imin, imax: integer;
begin
   Randomize;
   for i:=1 to 20 do
   begin
      a[i]:=-8+Random(39);
      Write(a[i]:3, '  ');
   end;
   Writeln;
   Writeln;
   imin:=1;
   imax:=1;
   for i:=2 to 20 do
   begin
      if a[imin]>a[i] then
         imin:=i;
      if a[imax]<a[i] then
         imax:=i;
   end;
   Writeln('imin = ', imin);
   Writeln('imax = ', imax);
   i:=imin*imax;
   Writeln('i = ', i);
   Readln;
end.
Код:
var a: array[1..10] of integer;
    i, mi: integer;
begin
   for i:=1 to 10 do
   begin
      Write('a[', i, '] = ');
      Readln(a[i]);
   end;
   Writeln;
   Writeln;
   mi:=0;
   for i:=1 to 10 do
      if (a[i]>9) and (a[i]<100) then
      begin
         if mi=0 then
            mi:=a[i] else
         if mi>a[i] then
            mi:=a[i];
      end;
   if mi=0 then
      Writeln('Нет минимального двузначного числа!') else
      Writeln('min = ', mi);
   Readln;
end.
С запрограммированным приветом, Неверов Евгений!
Сайт: http://newerow1989.ru
[Паскаль] [Delphi]

Последний раз редактировалось newerow1989; 23.10.2022 в 14:36. Причина: Добавил решение 2-й задачи; добавил a[i]<100
newerow1989 вне форума Ответить с цитированием
Старый 23.10.2022, 14:16   #4
macomics
Участник клуба
 
Регистрация: 17.04.2022
Сообщений: 1,833
По умолчанию

Код:
program test;

uses
   SysUtils;

TYPE
   TArray1 = array [1 .. 20] of Integer;
   TArray2 = array [1 .. 10] of Integer;

procedure FillRandom(var A: TArray1; l, h: Integer);
var
   i: Integer;
begin
   Randomize;
   for i := Low(A) to High(A) do
      A[i] := l + Random(h - l);
end;

procedure FillKeybrd(var B: TArray2; h: String);
var
   i: Integer;
begin
   for i := Low(B) to High(B) do begin
      Write(h, '[', i, '] = ');
      ReadLn(B[i]);
   end;
end;

function GetMinMax(A: TArray1): Integer;
var
   i, j, k: Integer;
begin
   j := Low(A);
   k := j;
   for i := j + 1 to High(A) do begin
      if A[j] < A[i] then j := i;
      if A[k] > A[i] then k := i;
   end;
   GetMinMax := j * k;
end;

function GetMin2Digit(B: TArray2): Integer;
var
   i, m: Integer;
begin
   m := Low(B) - 1;
   for i := m + 1 to High(B) do
      if (B[i] > 9) and (B[i] < 100) then
         if (m < Low(B)) or (B[m] > B[i]) then m := i;
   if m >= Low(B) then GetMin2Digit := B[m] else GetMin2Digit := 0;
end;

procedure PrintArray1(A: TArray1; h: String);
var
   i: Integer;
begin
   for i := Low(A) to High(A) do
      WriteLn(h, '[', i, '] = ', A[i]);
end;

procedure PrintArray2(B: TArray2; h: String);
var
   i: Integer;
begin
   for i := Low(B) to High(B) do
      WriteLn(h, '[', i, '] = ', B[i]);
end;

VAR
   A: TArray1;
   B: TArray2;

BEGIN
   FillRandom(A, -8, 30);
   FillKeybrd(B, 'B');
   PrintArray1(A, 'A');
   WriteLn('Amin * Amax = ', GetMinMax(A));
   PrintArray2(B, 'B');
   WriteLn('Bmin2digit = ', GetMin2Digit(B));
   ReadLn;
END.
Вот так она работает

Последний раз редактировалось macomics; 23.10.2022 в 14:29.
macomics вне форума Ответить с цитированием
Старый 23.10.2022, 14:27   #5
newerow1989
Я самый любопытный
Участник клуба
 
Аватар для newerow1989
 
Регистрация: 24.07.2012
Сообщений: 1,951
По умолчанию

macomics, для чего в функции GetMin2Digit условие B[i] < 100?
С запрограммированным приветом, Неверов Евгений!
Сайт: http://newerow1989.ru
[Паскаль] [Delphi]
newerow1989 вне форума Ответить с цитированием
Старый 23.10.2022, 14:33   #6
macomics
Участник клуба
 
Регистрация: 17.04.2022
Сообщений: 1,833
По умолчанию

Цитата:
Сообщение от newerow1989 Посмотреть сообщение
macomics, для чего в функции GetMin2Digit условие B[i] < 100?
Павел1223: Найти минимальное двузначное число в этом массиве.
А массив заполняется с клавиатуры. См. ссылку

Если не будет этой проверки, тогда первое число большее 9 будет запомнено в качестве минимального, но при этом оно не будет двузначным.
B: array [1 .. 10] of Integer = (0, 1, 2, 123, 124, 125, 126, 127, 128, 129); Выдаст 123

Последний раз редактировалось macomics; 23.10.2022 в 14:37.
macomics вне форума Ответить с цитированием
Старый 23.10.2022, 14:39   #7
newerow1989
Я самый любопытный
Участник клуба
 
Аватар для newerow1989
 
Регистрация: 24.07.2012
Сообщений: 1,951
По умолчанию

Цитата:
Сообщение от macomics Посмотреть сообщение
Павел1223: Найти минимальное двузначное число в этом массиве.
А массив заполняется с клавиатуры. См. ссылку
Точно!
С запрограммированным приветом, Неверов Евгений!
Сайт: http://newerow1989.ru
[Паскаль] [Delphi]
newerow1989 вне форума Ответить с цитированием
Старый 23.10.2022, 15:11   #8
macomics
Участник клуба
 
Регистрация: 17.04.2022
Сообщений: 1,833
По умолчанию

Еще можно в качестве двузначных чисел рассмотреть диапазоны [-99 .. -10] или [-9 .. -1] (двусимвольный с первым символом минус и цифрой). Но это он пускай сам попробует доделать по аналогии.

А если философствовать, тогда единственное двузначное число это 0 (+0 = -0 = 0: или без значное)

Последний раз редактировалось macomics; 23.10.2022 в 15:14.
macomics вне форума Ответить с цитированием
Старый 23.10.2022, 20:04   #9
digitalis
Старожил
 
Аватар для digitalis
 
Регистрация: 04.02.2011
Сообщений: 4,657
По умолчанию

Вроде значность числа определяется числом цифр в нём, знак не учитывается? По логике...
digitalis вне форума Ответить с цитированием
Старый 25.10.2022, 09:20   #10
Alex314
Пользователь
 
Регистрация: 14.04.2014
Сообщений: 10
По умолчанию

Павел1223, вот код:
Код:
## // PascalАВС.NЕТ 3.8.3
var a := ArrRandom(20, -8, 30);
a.Println;
Print((a.IndexMax + 1) * (a.IndexMin + 1))
Код:
## // PascalАВС.NЕТ 3.8.3
var a := ReadArrInteger(10);
a.Where(n -> Abs(n) in 10..99).Min.Print
Alex314 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
ПОМОГИЕ написать готовый код через For lizka6011997 Помощь студентам 0 25.11.2013 21:20
Помогие с винчестером.... Spiderman Компьютерное железо 2 12.01.2010 12:25
помогие новичку Dimarik Общие вопросы C/C++ 10 16.10.2009 17:57
построить дерево,помогие пожалуйста olesyaA Помощь студентам 13 30.05.2009 19:41