Хелпикс

Главная

Контакты

Случайная статья





Задача 1_2_25 (инд). Задача 1_3_1



Задача 1_2_25 (инд)

Описание задачи:

Среди заданных целых чисел А, В, С, D есть хотя бы два четных – true, иначе false.

Описание алгоритма:

Создаем массив чисел, полученных из форм. Создаем счетчик, по умолчанию равный нулю. Проходим по массиву, и, найдя четное число, увеличиваем счетчик. После выхода из цикла проверяем счетчик. Если он больше двух, то выводим true, иначе false.

Текст программы:

<?php

              $k = 0;//Заводим счётчик

              for ($i = 0; $i < 4; $i++){//Заводим цикл от 1 до 4х

                       if ($_POST[$i] % 2 == 0){//Проверяем, четён ли элемент массива

                                 $k++;//Увеличиваем счётчик

                       }

              }

              if ($k >= 2){//Проверяем количество четных чисел и пишем результат

                       echo "Да, среди этих четырех чисел есть два четных.";

              }

              else {

                       echo "Нет, среди этих четырех чисел хотя бы двух четных чисел нет.";

              }

              ?>


 

Блок-схема:


Тестовый пример:


 

Задача 1_3_1

Описание задачи:

Незнайка учит иностранные слова следующим образом. Если число месяца, кратное трем, является вторником, четвергом или субботой, то он учит 3 испанских и 1 английское слово. Если число месяца, кратное трем, – другой день недели, то он учит 2 английских и 4 немецких слова. По числам, которые при делении на 3 дают в остатке 1, он учит 1 испанское, 1 английское и 5 немецких слов. По остальным числам месяца Незнайка учит 2 испанских, 4 английских и 1 немецкое слово. Написать программу, подсчитывающую, сколько слов в июне выучит Незнайка, если 1 июня была среда.

Описание алгоритма:

Создаем три переменных и присваиваем им по умолчанию значение 0. Они будут отвечать за испанские, английские и немецкие слова. Так же создаем переменную day, которая по умолчанию будет иметь значение 3. Всего у неё будет 7 значений, каждое из которых является днём недели, идущим по порядку.

Организуем цикл от 1 до 30. В нем мы будем перебирать все числа июня. Если число июня делится на три и этот день является вторником, четвергом или субботой (значения 2, 4 и 6 соответственно), то прибавляем к счетчику испанских слов 3 слова, к счетчику английских - одно.

Если эти условия число месяца не удовлетворяет, мы проверяем, делится ли оно хотя бы на 3. Если делится, то прибавляем к счетчику английских слов 2 слова и к немецкому счетчику 4 слова соответственно.

В противном случае, мы проверяем, получается ли в результате деления на 3 остаток 1. Если получается, то прибавляем к английскому счетчику слов 4 слова, к испанскому и немецкому по одному слову соответственно.

После всех преобразований в итерации цикла, мы прибавляем к счетчику дней единицу, тем самым сменяя день недели. Так же, мы создаем проверку, и если наш счетчик дней был воскресеньем (т.е. равен 7-и), перезапускаем его, присваивая единицу.


 

Текст программы:

<?php

              $isp = 0;$eng = 0; $nem = 0;//Счетчики слов

              $day = 3;//Переменная, отвечающая за смену дня недели

              for ($i = 0; $i < 30; $i++){

                       if (($i % 3 == 0) && (($day == 2) || ($day == 4) ||($day == 6))){//Делится ли число месяца на три и является ли оно вторником, четвергом или субботой

                                 $isp += 3;//Увеличение счетчиков слов в соотвествии с условиями

                                 $eng++;

                       } elseif ($i % 3 == 0){//Делится ли число месяца на три

                                 $eng += 2;//Увеличение счетчиков слов в соотвествии с условиями

                                 $nem += 4;

                       } elseif ($i % 3 == 1){//Дает ли число месяца в остатке при делении на три единицу

                                 $nem += 5;//Увеличение счетчиков слов в соотвествии с условиями

                                 $isp++;

                                 $eng++;

                       } else {//Если все условия оказались ложными

                                 $eng += 4;//Увеличение счетчиков слов в соотвествии с условиями

                       $isp += 2;

                                 $nem++;

                       }

                       if ($day == 7){//Рестарт недели на понедельник

                                 $day = 1;

                       } else {

                                 $day++;

                       }

              }

              echo 'Испанских слов выучено: '.$isp.'<br>Английских слов выучено: '.$eng.'<br>Немецких слов выучено: '.$nem;//Вывод результата

              ?>

Тестовый пример:


 



  

© helpiks.su При использовании или копировании материалов прямая ссылка на сайт обязательна.