Статистика
Всего в нашей базе более 4 327 660 вопросов и 6 445 973 ответов!

Народ, помогите, надо написать программу. Язык - на ваше усмотрение. Заранее спасибо, если кто поможет)

10-11 класс

Даю чёткое ТЗ:
Шаг 1: У нас есть поле, в котором необходимо указать количество возможных событий (лучше это поле подписать рядом), после ввода туда нужного числа переходим к шагу 2.
Шаг 2: Далее идут поля под события и их процентную вероятность(тоже можно подписать рядом знаком"%"), то биш одно большое и одно маленькое поле на каждую строчку. Количество занятых строчек зависит от количества событий, введенных нами в шаге 1. Теперь вводим в большие поля названия событий (допустим: "дождь", "солнце", "ветер"), а в малые поля вводим их процентную вероятность (допустим "15", "73", "12"). Затем нажимаем кнопку снизу "результат" и под этой кнопкой появится выпавшее событие. При повторном нажатии данной кнопки, ситуация повторяется и нам снова выпадает какое-то событие.

Пример 1:
Количество событий: 3
ОК
Солнечно: 60 %
Ветренно: 25 %
Дождливо: 15 %
Результат
(тут будет написан результат)

Пример 2:
Количество событий: 2
ОК
Попадание: 60 %
Промах: 40%
Результат
(тут будет написан результат)

Barca96 30 авг. 2013 г., 4:05:26 (10 лет назад)
Рейтинг
+ 0 -
0 Жалоба
+ 0 -
Pavlovskayaoks
30 авг. 2013 г., 5:02:41 (10 лет назад)

var
  numberOfEvents, i, j, max, temp, rand, result : integer;
  eventsProc : array of integer;
  eventsNames : array of string;
  tempStr : string;
begin
  writeln('Количество событий: ');
  readln(numberOfEvents);
  SetLength(eventsProc, numberOfEvents);
  SetLength(eventsNames, numberOfEvents);
  {заполняем события}
  for i := 0 to numberOfEvents - 1 do
  begin
    write('Событие номер ', i + 1, ': ');
    readln(tempStr);
    eventsNames[i] := tempStr.Split(' ')[0];
    eventsProc[i] := StrToInt(tempStr.Split(' ')[1]);
  end;
  {сортируем массив по убыванию вероятности событий}
  max := 0;
  for i := 1 to numberOfEvents - 1 do
  begin
    for j := i to numberOfEvents - 1 do  {находим индекс максимального элемента на отрезке от i до количества событий}
      if eventsProc[j] > eventsProc[max] then
        max := j;
    {меняем местами максимальный и i-ый элементы массива}
    temp := eventsProc[i];
    tempStr := eventsNames[i];
    eventsProc[i] := eventsProc[max] + eventsProc[i - 1];
    eventsNames[i] := eventsNames[max];
    eventsProc[max] := temp;
    eventsNames[max] := tempStr;
    {поменяли}
  end;
  {выбираем рандомный элемент массива, опираясь на вероятность}
  rand := Random(1, 100);
  result := 0; 
  if rand <= eventsProc[0] then
    result := 0
  else   
    for i := 1 to numberOfEvents - 1 do
      if (rand > eventsProc[i - 1]) and (rand <= eventsProc[i]) then
        result := i;
  {выбрали}
  write('Результат: ', eventsNames[result]);
end.

P.S Нет никаких проверок, дабы не загружать программу, можете добавить их сами. Формат ввода события: 'событие процент', пример: 'снег 30'

Ответить

Другие вопросы из категории

Дан массив Array[1..100]

С помощью цикла присвоить, каждому элементу массива значение равное номер элемента умноженный на 3. например для массива А значение элемента А[1]=2, A[2]=6 A[3]=9 и т.д. В конце программа должна выводить на экран сумму всех элементов массива.

Выполнить действие и результат проверить в десятичной системе счисления.

1101(2)*101(2)
Нужно срочно, помогите!

Элемент матрицы называется локальным минимумом, если

он строго меньше всех имеющихся у него соседей. Подсчитать количество локальных
минимумов заданной матрицы размером 10 на 10.

Найти сумму модулей элементов, расположенных выше
главной диагонали.
на языке С

Помогите пожалуйста!!!

Составить блок-схему и написать
на VBA
функцию, вычисляющую
для одномерного массива

Читайте также

написать программу на Assembler

добрый вечер, всем. помогите, пожалуйста, написать программу на Ассемблере.

задание:
Создать программу на языке Ассемблер, что позволяет организовать вычисления над элементами массивов

Объединить два массива 8-битных целых чисел со знаком. Сначала элементы второго затем первого.

заранее огромное спасибо всем!

Помогите надо написать программу в паскале. 1)координаты двух различных полей шахматной доски x1, y1,x2, y2 (целые числа, лежащие в диапазоне 1–8).

Проверить истинность высказывания: «Ладья за один ход может перейти с одного поля на другое». 2) Дано трехзначное число. Проверить истинность высказывания: «Все цифры данного числа различны». 3)Даны две переменные целого типа: A и B. Если их значения не равны, то присвоить каждой переменной сумму этих значений, а если равны, то присвоить переменным нулевые значения. Вывести новые значения переменных A и B.

Написать программы на языке С++

1) С клавиатуры вводится 2 числа - целое и вещественное. Программа выводит их сумму на экран.
2) Написать процедуру, которая умножает число типа int на число типа float на число типа double и выводит результат на экран
3) Написать процедуру, которая будет выводить любой текст, являющийся ее аргументом
4) С клавиатуры вводится 5 символов поочередно, программа выводит на экран акроним к слову которая образует эти 5 символов

программа на C++ в визуальном режиме (есть несколько вариантов кода программы)

доброй ночи, уважаемые программисты и успевающие в учебе студенты. помогите, пожалуйста, написать программу на C++ (в визуальной вкладке).

ВОТ ЗАДАНИЕ:
дано три переменные вещественного типа. если их значения упорядочены по возрастанию или убыванию, то удвоить их; иначе заменить значение каждой переменной на противоположное. вывести значения переменных.


я прикрепила несколько тестовых файлов (блокнот) в которых есть несколько вариантов решение этого задание (то есть коды программ), а вы скажите какой из них лучше всего подходит, а также скажите какие компоненты нужно кинуть на форму-дизайн (то есть какие кнопки, и что на них писать). в этих 3 файлов есть написанный код программы, нужно написать: на какие кнопки что писать и какой вариант решение больше подходит.

заранее огромное спасибо всем за помощь!!!

Помогите написать программу в паскале. Задание:На плоскости даны 2 точки А (х1; у2) и В (х2; у2), определить какая из них находится дальше от начала коо

рдинат. Я поняла, что нужно найти их длины (формулы я знаю), а правильно написать программу не могу



Вы находитесь на странице вопроса "Народ, помогите, надо написать программу. Язык - на ваше усмотрение. Заранее спасибо, если кто поможет)", категории "информатика". Данный вопрос относится к разделу "10-11" классов. Здесь вы сможете получить ответ, а также обсудить вопрос с посетителями сайта. Автоматический умный поиск поможет найти похожие вопросы в категории "информатика". Если ваш вопрос отличается или ответы не подходят, вы можете задать новый вопрос, воспользовавшись кнопкой в верхней части сайта.