03/12/2016 - 03:12:49

Среднее арифметическое положительных элементов массива

Найти среднее арифметическое положительных элементов линейного массива.

Данная задача имеет смысл, если массив заполнен не только положительными числами, но также содержит отрицательные числа и/или возможно нули.

Для заполнения массива можно воспользоваться генератором псевдослучайных чисел. Допустим, надо сгенерировать числа в диапазоне от -5 до 4 включительно. Всего значений 10, смещение на -5. Таким образом, с помощью стандартной функции генерируем числа от 0 до 10 и вычитаем из них 5.

Среднее арифметической находится как отношение суммы чисел к количеству этих чисел. Поскольку надо найти среднее арифметическое только положительных чисел, то, перебирая массив, нам надо определять положительные числа, добавлять их к общей сумме, а также считать их количество. Для этого потребуется две переменные (например, sum и qty), которым до цикла следует присвоить значение 0.

Осуществлять проверку с помощью условного оператора if можно как в отдельном цикле перебора массива, так и в цикле его заполнения. Если очередной элемент массива больше нуля, то следует его значение добавить к переменной sum, а значение переменной qty увеличить на 1.

После того как все элементы массива проверены, надо найденную сумму положительных чисел разделить на их количество. Тем самым будет найдено среднее арифметическое.

31/05/2016 - 07:05:21

Максимальный отрицательный элемент массива

В массиве найти максимальный отрицательный элемент. Вывести на экран его значение и позицию в массиве.

Задача поиска максимального отрицательного элемента массива не такая простая, как может показаться на первый взгляд.

Введем переменную (условно назовем ее A) для хранения индекса максимального отрицательного элемента и присвоим ей значение, выходящее за пределы возможных индексов. Например, если индексация элементов начинается с нуля, то данной переменной можно присвоить значение -1 (можно присвоить 0, если индексация начинается с 1). Если в массиве вообще не будет найдено отрицательных элементов, то ее такое значение будет "сигнализировать" об этом.

Перебираем массив в цикле. Если очередной элемент меньше нуля и значение переменной A равно -1, то значит, это первый встретившийся отрицательный элемент. Запоминаем его индекс в переменной A. Если же очередной элемент отрицательный, но A уже не содержит -1, то сравниваем значение текущего элемента с тем, которое содержится по индексу, хранимому в A. Если текущий элемент больше, то записываем его индекс в A.

После завершения цикла проверяем, не равно ли значение A -1. Если не равно, то выводим индекс максимального отрицательного элемента массива и его значение.

29/04/2016 - 03:04:53

Определить нечетное число

Из двух случайных чисел, одно из которых четное, а другое нечетное, определить и вывести на экран нечетное число.

В данной задаче можно выделить две подзадачи: 1) сгенерировать два случайных числа так, чтобы одно было четным, а другое нечетным, 2) определить, какое из них нечетное.

Вариант решения первой подзадачи:
Генерируем два случайных числа. Далее проверяем, являются ли оба числа четными или оба нечетные. Если это так, то увеличиваем первое число на 1. При этом в любом случае одно станет четным, а другое - нечетным. Проверку осуществляем в заголовке оператора if, строя сложное логическое выражение.

Вариант решения второй подзадачи:
Также используем оператор ветвления. Если первое число нечетное, то выводим его, иначе выводим второе.

Проверка чисел на четность выполняется путем определения остатка от деления числа на 2. Если остаток равен нулю, значит, число четное. Если нет, то нечетное.

27/12/2014 - 11:12:16

Является ли строка идентификатором

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

При решении задачи следует проверить:

  1. Принадлежит ли первый символ слова множеству английских букв, или является символом подчеркивания?
  2. Принадлежат ли все остальные символы слова множеству английских букв или множеству символов цифр или являются символами подчеркивания?

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

Разные языки программирования включают различные возможности. Поэтому в программах ниже используются немного отличающиеся способы решения данной задачи.

27/12/2014 - 08:12:33

Составить из букв введенной строки слова

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

Переменные:

  • s - введенная строка;
  • w - составляемое очередное слово;
  • ls, lw - длины введенной строки и составляемого слова;
  • i - счетчик слов (номер составляемого слова);
  • j - счетчик букв (номер буквы) составляемого слова;
  • let - номер взятой буквы из введенной строки.

После ввода строки измерим ее длину и запишем полученное значение в переменную ls. Допустим, надо составить пять случайных буквосочетаний. Следовательно, все дальнейшие действия будут выполняться в цикле, количество итераций которого равно 5.

Пусть длина очередного слова определяется случайно и может варьировать от 2 символов до 7. Тогда переменной lw надо присвоить случайное число от 2 до 7. Ее значение определяет, сколько раз надо будет взять букву из введенной строки.

Перед тем как собирать слово, переменной w присваивается пустая строка, а j присваивается 0. Далее в цикле (пока j < lw) берется случайный символ из строки. Для этого используется переменная ls (длина строки). Если этот символ не пробел, то он добавляется в конец строки w, а переменная j увеличивается на 1. После того как слово собрано, оно выводится на экран.