Студопедия
Случайная страница | ТОМ-1 | ТОМ-2 | ТОМ-3
АрхитектураБиологияГеографияДругоеИностранные языки
ИнформатикаИсторияКультураЛитератураМатематика
МедицинаМеханикаОбразованиеОхрана трудаПедагогика
ПолитикаПравоПрограммированиеПсихологияРелигия
СоциологияСпортСтроительствоФизикаФилософия
ФинансыХимияЭкологияЭкономикаЭлектроника

Часть 2. 24 Требовалось написать программу, которая вводит три целых числа в переменные a

Читайте также:
  1. I. Теоретическая часть
  2. III. Основная часть.
  3. IV. Пишем основную часть
  4. Lt;guestion> Укажите, к какому стилю речи относится данный текст: Наречие - неизменяемая часть речи, которая обозначает признаки действия, предмета или другого признака.
  5. Past Participle смыслового глагола является неизменяемой частью формулы образования страдательного глагола.
  6. Quot;Глава 35" или "Ночная Фурия. Часть 1".
  7. Quot;Глава 8" или "Желание. Часть 2".
Для записи ответов на задания этой части (24–27)используйте БЛАНКОТВЕТОВ № 2. Запишите сначала номер задания (24, 25 и т. д.), а затем полное решение. Ответы записывайте чётко и разборчиво.

24 Требовалось написать программу, которая вводит три целых числа в переменные a, b и c, а потом сортирует их так, чтобы в переменной a оказалось наименьшее число, в переменной b – среднее число, а в переменной c – наибольшее число. Программист торопился и сделал в программе ошибки. Ниже эта программа для Вашего удобства приведена на четырёх языках программирования

Бейсик Паскаль
IF x > maximum THEN IF count > 0 THEN PRINT a PRINT b print c END IF if a>b: x=a a=b b=x: if b>c: x=b b=c c=x: print(a) print(b)
Си Алгоритмический язык
var a, b, c, x: integer; begin read(a, b, c, x); if a > b then begin x:=a; a:=b; b:=x; end; if b > c then begin x:=b; b:=c; c:=x; end; write(a,b,c); end. var a, b, c, x: integer; begin read(a, b, c, x); if a > b then begin x:=a; a:=b; b:=x; end; if b > c then begin x:=b; b:=c; c:=x; end; write(a,b,c); end.

Последовательно выполните следующее.

1. Приведите примеры таких чисел a, b, с, при которых программа неверно решает поставленную задачу.

2. Укажите, какая часть программы является лишней?

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

ошибки в имеющейся программе а не написать свою, возможно, использующую другой алгоритм решения. Исправление ошибки должно затрагивать только строку, в которой находится ошибка.

Примечание: 0 – чётное число.

 

25 Дан целочисленный массив из 30 элементов. Элементы массива могут принимать целые значения от 0 до 1000. Опишите на русском языке или на одном из языков программирования алгоритм, позволяющий найти среднее арифметическое нечётных трехзначных чисел, записанных в этом массива. Если ни одного такого числа нет, нужно вывести сообщение об этом. Исходные данные объявлены так, как показано ниже. Запрещается использовать переменные, не описанные ниже, но разрешается не использовать часть из них.

Бейсик Паскаль
N=30 DIM A(N) AS INTEGER DIM I, J,MIN AS INTEGER DIM S AS SINGLE FOR I = 1 TO N INPUT A(I) NEXT I … END const N=30; var a: array [l..N] of integer; i,j,s: integer; begin for i:=l to N do readln(a[i]);... end.
Си Естественный язык
#include <stdio.h> #define N 30 void main(void) {int a[N]; int i, j, min; float s; for (i=0; i<N; i++) scanf("%d", &a[i]); … } Объявляем массив A из 30 элементов. Объявляем целочисленные переменные I, J, MIN. В цикле от 1 до 30 вводим элементы массива A с 1-го по 30-й....

 

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

 

26 Два игрока, Петя и Ваня, играют в следующую игру. Перед игроками лежит куча камней. Игроки ходят по очереди, первый ход делает Петя. За один ход игрок может добавить в кучу один камень или увеличить количество камней в куче в два раза. Например, имея кучу из 15 камней, за один ход можно получить кучу из 16 или 30 камней. У каждого игрока, чтобы делать ходы, есть неограниченное количество камней. Игра завершается в тот момент, когда количество камней в куче становится не менее 22. Победителем считается игрок, сделавший последний ход, то есть первым получивший кучу, в которой будет 22 или больше камней.

В начальный момент в куче было S камней, 1 ≤ S ≤ 21.

Будем говорить, что игрок имеет выигрышную стратегию, если он может выиграть при любых ходах противника. Описать стратегию игрока – значит описать, какой ход он должен сделать в любой ситуации, которая ему может встретиться при различной игре противника.

 

Выполните следующие задания. Во всех случаях обосновывайте свой ответ.

1. а) Укажите все такие значения числа S, при которых Петя может выиграть в один ход. Обоснуйте, что найдены все нужные значения S, и укажите выигрывающий ход для каждого указанного значения S.

б) Укажите такое значение S, при котором Петя не может выиграть за один ход, но при любом ходе Пети Ваня может выиграть своим первым ходом. Опишите выигрышную стратегию Вани.

2. Укажите два таких значения S, при которых у Пети есть выигрышная стратегия, причём
– Петя не может выиграть за один ход, и
– Петя может выиграть своим вторым ходом, независимо от того, как будет ходить Ваня.

Для каждого указанного значения S опишите выигрышную стратегию Пети.

3. Укажите значение S, при котором
– у Вани есть выигрышная стратегия, позволяющая ему выиграть первым или вторым ходом при любой игре Пети, и
– у Вани нет стратегии, которая позволит ему гарантированно выиграть первым ходом.

Для указанного значения S опишите выигрышную стратегию Вани.

Постройте дерево всех партий, возможных при этой выигрышной стратегии Вани (в виде рисунка или таблицы). На рёбрах дерева указывайте, кто делает ход, в узлах – количество камней в куче.

 

27 Ав­то­мо­биль, участ­ву­ю­щий в гонке, может быть осна­щен двумя раз­ны­ми ти­па­ми колес (A и B). Вдоль трас­сы рас­по­ло­же­ны стан­ции, на ко­то­рых можно вы­пол­нить за­ме­ну колес A на B, эта опе­ра­ция за­ни­ма­ет t се­кунд. За­ме­на колес B на A в ходе гонки тех­ни­че­ски не­воз­мож­на. На старт можно выйти с любым ком­плек­том. Для каж­до­го участ­ка между стан­ци­я­ми из­вест­но, за какое время можно прой­ти этот уча­сток с каж­дым из ком­плек­тов колес. Не­об­хо­ди­мо опре­де­лить, за какое ми­ни­маль­ное время можно прой­ти всю трас­су.

На­пи­ши­те эф­фек­тив­ную, в том числе по ис­поль­зу­е­мой па­мя­ти, про­грам­му для ре­ше­ния этой за­да­чи.

Перед тек­стом про­грам­мы крат­ко опи­ши­те ал­го­ритм ре­ше­ния и ука­жи­те язык про­грам­ми­ро­ва­ния и его вер­сию.


Дата добавления: 2015-08-18; просмотров: 282 | Нарушение авторских прав


<== предыдущая страница | следующая страница ==>
Нц для i от 7 до n| В руки фрукты мы берем ...

mybiblioteka.su - 2015-2024 год. (0.007 сек.)