геннадиевна2001
?>

Постройте блок схему для задачи: "Подсчитать количество и сумму четных двухзначных чисел*

Информатика

Ответы

paninsv

#include <iostream>

using namespace std;

int main()

{

   

   string str;

   cout << "Old string:\n";

   getline(cin,str);//если cin >> str, то считывание лишь до первого пробела

   for (int i=0; i < str.length(); i++) //таким образом перемещаемся по элементах строки

   {

       if (str[i] == '.')// если в тексте найдено точку...

       {

           if (str[i + 1] == '.' && str[i + 2] == '.') // ...если дальше есть две точки подряд...

           i+=2;//...то идти дальше: i+=2 здесь и i++ в условии цикла - итого перепрыгнуть через те две точки (i+=3)

           else //если дальше нет двух точек подряд...

           {

               for (int j = 0; j < 2; j++)// ...то по одной...

               {

               str.insert(i, ".");// ..."создать" их, используя функцмю str.insert(pos,key), где первый аргумент - позиция вышенайденной точки, перед которой "создаём" точку (вставляем 2-й аргумент)

               i++;//мы сейчас на новосозданной точке, поэтому идти дальше: переместиться на один символ вперёд - итого мы сейчас на той точке, которую мы не создавали и которая была в Old string

               }

   }}}

   

   cout << "New string =\n" << str;

   return 0;

}

palosik7621

Первый вариант:

a = int(input('Введите a: '))

while True:

 b = int(input('Введите b: '))

 if a != b: break

 print('Введите значение, неравное a')

while True:

 c = int(input('Введите c: '))

 if not c in [a,b]: break

 print('Введите значение, отличное от предыдущих')

while True:

 d = int(input('Введите d: '))

 if not d in [a,b,c]: break

 print('Введите значение, отличное от предыдущих')

print('--- Вы ввели: ---')

print('a = ', a)

print('b = ', b)

print('c = ', c)

print('d = ', d)

print('--- Вычисления ---')

print('1:')

if a%b + a%c + a%d == 0: print('a делится на b, c и d!')

elif a%b == 0: print('a делится на b!')

elif a%c == 0: print('a делится на c!')

elif a%d == 0: print('a делится на d!')

else: print('a не делится ни на b, ни на c, ни на d!')

print('2:')

if c-d == 0: print('Невозможно вычислить (a-b)/(c-d), т.к. c-d = 0')

else: print('(a-b)/(c-d) = ', (a-b)/(c-d))

if c+b+d == 0: print('Невозможно вычислить a/(c+b+d), c+b+d = 0')

else: print('a/(c+b+d) = ', a/(c+b+d))

print('3:')

max = a

min = a

if max < b: max = b

if min > b: min = b

if max < c: max = c

if min > c: min = c

if max < d: max = d

if min > d: min = d

print('Минимальное число из введённых: ', min)

print('Максимальное число из введённых: ', max)

Второй вариант (сложнее читается, но сам по себе компактнее):

values = []

variables = ['a','b','c','d']

check = [0,0,0]

for i in range(4):

 while True:

   x = int(input(f'Введите {i+1}-е число: '))

   if x not in values:

     values.append(x)

     break

   print('Введите значение, отличное от предыдущих')

print(f'--- Вы ввели:')

for i in enumerate(values):

 print(f'{variables[i[0]]} = {i[1]}')

print('--- Вычисления ---')

print('1:')

for i in enumerate(values[1:]):

 if values[0] % i[1] == 0: check[i[0]] = 1

if sum(check) == 3: print('a делится на остальные!')

elif sum(check) == 0: print('a не делится на остальные!')

else:

 for i in enumerate(check):

   if i[1] == 1: print(f'a делится на {variables[i[0]+1]}!')

print('2:')

if values[2] == values[3]: print('Невозможно вычислить (a-b)/(c-d), т.к. c-d = 0')

else: print('(a-b)/(c-d) = ', (values[0]-values[1])/(values[2]-values[3]))

if sum(values[1:]) == 0: print('Невозможно вычислить a/(c+b+d), c+b+d = 0')

else: print('a/(c+b+d) = ', values[0]/sum(values[1:]))

print('3:')

print(f'Минимальное число из введённых: {min(values)}')

print(f'Максимальное число из введённых: {max(values)}')

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

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

Постройте блок схему для задачи: "Подсчитать количество и сумму четных двухзначных чисел*
Ваше имя (никнейм)*
Email*
Комментарий*

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

Александр1991
Михайлов
Sergei Vitalevna
Sosovna Dmitrievich22
Korneeva1856
rinat
Агибалов428
verynzik66525
Okunev1034
printdecor
viktoritut
grachevakaterina
serkinn69
petrowanastya202081
extremhunter