korolev-comitet8825
?>

Определите, что будет напечатано в результате выполнения следующего скрипта: z = 30for n in range(10):if n < 0: z = z – 2 * nelse:z = n - zprint(z) (с решением) *​

Информатика

Ответы

mariokhab

35

Объяснение:

n=0 z=0-30

n=1 z=1-(-30)

n=2 z=2-31

n=3 z=3-(-29)

n=4 z=4-32

n=5 z=5-(-28)

n=6 z=6-33

n=7 z=7-(-27)

n=8 z=8-34

n=9 z=9-(-26)=35

Надежда-Алексеевна82
PascalABC.NET 3.3.5, сборка 1669 от 21.05.2018
Внимание! Если программа не работает, обновите версию!

1. Функция

function avg(a:array of integer):=a.Where(t->t>0).Average;

begin
  var a:=ReadAllText('input.txt').ToIntegers;
  Writeln('Среднее значение положительных элементов ',avg(a))
end.

2. Процедура

procedure avg(a:array of integer; var m:real);
begin
  m:=a.Where(t->t>0).Average
end;

begin
  var a:=ReadAllText('input.txt').ToIntegers;
  var m:real;
  avg(a,m);
  Writeln('Среднее значение положительных элементов ',m)
end.

Хорошо видно, что решение с функцией имеет явное преимущество.
I.B.Petrishchev
Задача 1. Код, предложенный Budzsergiy777p0i27m наиболее подходит для решения, если слова разделены только одним пробелом. Решение задачи ниже аналогично (удалить пробелы в начале и в конце строки, затем посчитать пробелы, увеличить на 1 результат и вывести на экран)

Программа:
print(input().strip().count(' ')+1)

Задача 2. Здесь следует учесть, что строка является неизменяемым элементом, т.е. напрямую символ в строке изменить нельзя, но можно получить два среза строки до и после буквы 'h' и затем склеить первый срез + большая буква 'H' + второй срез. Например, строка
'abchdef' -> 'abc'+'H'+'def'. А чтобы не захватить первую и последнюю букву h, нужно найти их индексы в строке и затем обрабатывать только часть строки между первой и последней буквой h.

Программа:

x=input()              #ввод строки
n1=x.find('h')       #находим индекс первого вхождения буквы h
n2=x.rfind('h')      #находим индекс последнего вхождения буквы hy=x[n1+1:n2]     #выбираем срез строки после первого вхождения
                          #буквы h и до последнего вхождения буквы h
while y.find('h')!=-1: #пока в срезе есть буква h       y=y[:y.find('h')]+'H'+y[y.find('h')+1:]  #заменить малую букву h на H
print(x[:n1+1]+y+x[n2:])   #вывод строки до первой буквы h+результат
                                        #замен в срезе h на H + вывод строки после
                                        # последней буквы h

Ответить на вопрос

Поделитесь своими знаниями, ответьте на вопрос:

Определите, что будет напечатано в результате выполнения следующего скрипта: z = 30for n in range(10):if n < 0: z = z – 2 * nelse:z = n - zprint(z) (с решением) *​
Ваше имя (никнейм)*
Email*
Комментарий*

Популярные вопросы в разделе

Aleks0091
eugene869154
tanyatanyat
pafanasiew
cochana
zrs-546
dashasnegirva
arnaut-anna
Monstr13
gameover98
ekaterinava90
davidovalbert6
Anastasiya
NIKOLAEVNA
tetralek