В
Все
М
Математика
О
ОБЖ
У
Українська мова
Д
Другие предметы
Х
Химия
М
Музыка
Н
Немецкий язык
Б
Беларуская мова
Э
Экономика
Ф
Физика
Б
Биология
О
Окружающий мир
Р
Русский язык
У
Українська література
Ф
Французский язык
П
Психология
А
Алгебра
О
Обществознание
М
МХК
В
Видео-ответы
Г
География
П
Право
Г
Геометрия
А
Английский язык
И
Информатика
Қ
Қазақ тiлi
Л
Литература
И
История
f1chu
f1chu
01.03.2023 07:42 •  Информатика

Правил поведения и общения в интернете

Показать ответ
Ответ:
гарамьбм
гарамьбм
24.10.2020 10:46

--- Python 3.8.3 ---

import typing

from typing import List  

from typing import AnyStr

from typing import Tuple

from typing import Callable

from typing import Any

class FactPackLoader:

   def __init__(self, TrueCode: str = '1', FalseCode: str = '0', encoding: AnyStr = 'utf-8',):

       self._encoding = encoding

       self._trueAnswCode = TrueCode

       self._falseAnswCode = FalseCode

   def LoadPack(self, FactPackPath: AnyStr, AnswSplitter: AnyStr = ':: ') -> Tuple[AnyStr, int]:

       with open(FactPackPath, 'r', encoding=self._encoding) as data:

           RawData = data.read().split('\n')

       for FactPair in RawData:

           FactPair = tuple(FactPair.split(AnswSplitter))

           yield (FactPair[0], self._ToBool(FactPair[1]))

           

   def _ToBool(self, replyCode):

       if replyCode == self._trueAnswCode: return True

       return False  

def main():

   f = FactPackLoader()

   print('"Правда-Ложь"\nАвтор: KnowsUser1\nVersion: 0.0.1 Ya-Sdelyal')

   IsGameRunning = 'y'

   while IsGameRunning == 'y':

       lives = 3

       fp = input('Укажите имя файла, содержащего пак фактов:\n')

       facts = f.LoadPack(fp)

       for i, Q in enumerate(facts):

           print(f'Вопрос {i+1}:\n{Q[0]}')

           reply = True if input().lower() == 'да' else False

           if reply != Q[1]:

               lives -= 1

               print(f'Вы не поверите, но тот факт, что {Q[0]}, действительно является правдой!\nЖизней осталось: {lives}')

           else:

               print(f'Вы совершенно правы!')

           if lives <= 0:

               print('Вы проиграли')

               IsGameRunning = input('Попробуем ещё раз? Y/N\n').lower()

               break

       else:

           print('Поздравляем, вы успешно выполнили все задания из файла!')

           IsGameRunning = input('Сыграем ещё раз? Y/N\n').lower()

if __name__ == "__main__":

   main()

В файле с паком вопросов после каждого вопроса должен быть указан код ответа (по умолчанию - 1 - истина, 0 - ложь), отделённый от вопроса особым символом/набором символов (по умолчанию - ':: ')

Коды ответа при необходимости в изменении указываются при создании экземпляра FactPackLoader(), символ-разделитель - при вызове LoadPack().

По умолчанию в файле с заданиями пара вопрос ответ выглядит так:

//facts.txt

На самом деле солнце белого цвета :: 1

После "::" должен стоять пробел

P.S - Код main() можно и нужно рефакторить, ибо сейчас это нечто страшное.

P.S 2 Да, я часто обращаю внимание на плохой код людей, а сейчас сам его написал. Вынепонимаете, этодругое =))

P.S 3 Проверял, программа работает. Если что то сломалось, виноват сайт. На всякий случай прикреплю файл исходного кода в .txt

0,0(0 оценок)
Ответ:
Evilanda
Evilanda
12.06.2020 09:45

Код программы:

#include <iostream>

using namespace std;

int main()

{

   int *mas, n, sum, max, min;

   bool f_max= false, f_min = false;

   cout<<"Введите количество элементов в массиве"<<endl;

   cin >> n;

   mas = new int(n);

   cout<<"Введите элементы"<<endl;

   for (int i = 0; i < n; i++)

       cin >> mas[i];

   cout<<"Ваш массив: "<<endl;

   for (int i = 0; i < n; i++)

       cout << mas[i] <<' ';

   max = min = mas[0];

   for (int i = 0; i < n; i++){

       if (mas[i] % 2 == 0){

           if (max <= mas[i]){

               max = mas[i];

               f_max = true;

           }

       }

       else{

           if (min >= mas[i]){

               min = mas[i];

               f_min = true;

           }

       }

       

   }

   if (f_min == false)

       min = 0;

   if (f_max == false)

       max = 0;

   sum = max + min;

   cout<<"\nСумма = "<< sum<<endl;

   return 0;

}

0,0(0 оценок)
Популярные вопросы: Информатика
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota Оформи подписку
logo
Начни делиться знаниями
Вход Регистрация
Что ты хочешь узнать?
Спроси ai-бота