М
Молодежь
К
Компьютеры-и-электроника
Д
Дом-и-сад
С
Стиль-и-уход-за-собой
П
Праздники-и-традиции
Т
Транспорт
П
Путешествия
С
Семейная-жизнь
Ф
Философия-и-религия
Б
Без категории
М
Мир-работы
Х
Хобби-и-рукоделие
И
Искусство-и-развлечения
В
Взаимоотношения
З
Здоровье
К
Кулинария-и-гостеприимство
Ф
Финансы-и-бизнес
П
Питомцы-и-животные
О
Образование
О
Образование-и-коммуникации
romanvailev15
romanvailev15
07.01.2021 20:27 •  Информатика

Дан массив а с количеством элементов n< =10 (элементы вводить с клавиатуры).найдите сумму элементов этого массива , которые расположены между макс и мин элементами массива. заранее )

👇
Ответ:
Вместо слов тип укажешь real если массив действительных чисел или integer - если целые числа

var a: array[1..10] of тип
i,n:integer; max, min, sum: тип
begin
write('Введите количество элементов массива'); readln(n);
for i:=1 to n do read(a[i]);
max:=a[1]; min:=a[1];
for i:=2 to n do if a[i]>max then max:=a[i];
for i:=2 to n do if a[i]>min then min:=a[i];
sum:=0;
for i:=1 to n do if (a[i]>min) and (a[i]<max) then sum:= sum+a[i];
write('Сумма элементов массива расположенных между максимальным и минимальным = ', sum);
end.
4,4(25 оценок)
Открыть все ответы
Ответ:
Davidggg
Davidggg
07.01.2021
Var used: Set of Char;
    s1, s2: string;
    i: integer;
    done: boolean;
    c: char;

function IsLetter(c: char): boolean;
begin
  IsLetter := ((c >= 'a') and (c <= 'z')) or ((c >= 'A') and (c <= 'Z'));
end;

function UpperCase(c: char): char;
begin
  if (c >= 'a') and (c <= 'z') then
    UpperCase := Chr(Ord(c) - Ord('a') + Ord('A'))
  else
    UpperCase := c;
end;

begin
used := [];

readln(s1);
readln(s2);

for i := 1 to length(s1) do
  if (IsLetter(s1[i])) then
    include(used, UpperCase(s1[i]));

for i := 1 to length(s2) do
  if (IsLetter(s2[i])) then
    include(used, UpperCase(s2[i]));

done := False;
for c := 'A' to 'Z' do
  if not (c in used) then
  begin
    done := True;
    write(c);
  end;

if not done then
  write(0);

writeln;
end.
4,6(55 оценок)
Ответ:
aimuratsergei1234
aimuratsergei1234
07.01.2021
Для того, чтобы эта программа заработала надо добавить перед описанием процедуры F следующую строчку:
procedure G(n: integer);forward;
Так как в процедуре F есть вызов процедуры G описанной дальше по тексту программы.
После исправления кода и запуска программы с F(12) получим 17 звездочек. По шагам это будет выглядеть так:

 Вызов процедуры F и выполнение
* n = 12
* n = 12
Вызов процедуры G и выполнение
* n = 11
* n = 11
Вызов процедуры F и выполнение
* n = 9
* n = 9
Вызов процедуры G и выполнение
* n = 8
* n = 8
Вызов процедуры Fи выполнение
* n = 6
* n = 6
Вызов процедуры G и выполнение
* n = 5
* n = 5
Вызов процедуры F и выполнение
* n = 3
* n = 3
Вызов процедуры G и выполнение
* n = 2
* n = 2
Вызов процедуры F и выполнение
* n = 0

Ниже записаны две рекурсивные функции (процедуры): f и g.сколько символов «звёздочка» будет напечата
4,5(46 оценок)
Это интересно:
Новые ответы от MOGZ: Информатика
logo
Вход Регистрация
Что ты хочешь узнать?
Спроси Mozg
Открыть лучший ответ