M7. Задачи на обработку массивов с использованием операторов цикла с условием

Напишите в комментариях к этой записи консольные приложения для решения этих задач, укажите также код задачи.
Внимание! При решении задач на одномерные массивы обязательно учтите рекомендации по оформлению вашего результата!
Решены задачи нет. Не решены: пока все.

Задачи

M7.1. Известно, что в массиве имеются элементы, равные 5. Определить:
а) номер первого из них;
б) номер последнего из них.
В обеих задачах условный оператор не использовать.
M7.2. Известно, что в массиве имеются элементы, большие 65 530. Определить:
а) номер первого из них;
б) номер последнего из них.
В обеих задачах условный оператор не использовать.
M7.3. Известно, что в массиве имеются нулевые элементы. Напечатать:
а) все элементы, кроме первого из них;
б) все элементы, кроме последнего из них.
Примечание. В обеих задачах условный оператор не использовать.
M7.4. Дан массив, упорядоченный по возрастанию, и число a, о котором известно следующее: оно не равно ни одному из элементов массива, больше первого и меньше последнего элемента.
а) Вывести все элементы массива, меньшие a.
б) Найти два элемента массива (их порядковые номера и значение), в интервале, между которыми находится значение n.
в) Найти элемент массива (его порядковый номер и значение), ближайший к a.
Примечание. В задачах (а) и (б) условный оператор не использовать.
M7.5. Известны данные о росте 15 юношей класса, упорядоченные по убыванию. Ни одна пара учеников не имеет одинаковый рост. В начале учебного года в класс поступил новый ученик. Какое место в перечне ростов займет рост этого ученика (известно, что его рост не совпадает с ростом ни одного из учеников класса, превышает рост самого низкого ученика и меньше роста самого высокого). Условный оператор не использовать.
M7.6. Известно количество очков, набранных каждой из 20 команд — участниц первенства по футболу. Перечень очков дан в порядке убывания (ни одна пара команд не набрала одинаковое количество очков). Определить, какое место заняла команда, набравшая n очков (естественно, что значение n имеется в перечне). Условный оператор не использовать.
M7.7. В начале массива записаны несколько равных между собой элементов. Определить количество таких элементов и вывести все элементы, следующие за последним из них. Условный оператор не использовать.
M7.8. Известны оценки по геометрии каждого из 24 учеников класса. В начале списка перечислены все пятерки, затем все остальные оценки. Сколько учеников
имеют по геометрии оценку «5»? Условный оператор не использовать.
M7.9. Дан массив целых чисел.
а) Напечатать все элементы, предшествующие первому элементу с заданным значением n. Если элементов, равных n, в массиве нет, то должны быть напечатаны все элементы.
б) Напечатать все элементы, следующие за последним элементом, оканчивающимся цифрой 7. Если элементов, оканчивающихся цифрой 7, в массиве нет, то ни один элемент не должен быть напечатан.

M7.10. Для арифметических операций с большими числами, которые не могут быть представлены в памяти компьютера, используется следующий прием. Каждая цифра таких чисел записывается в отдельный элемент массива, и необходимые операции проводятся с элементами массива цифр. Составить программу:
а) выполняющую сложение 20-значных чисел;
б) выполняющую вычитание 30-значных чисел;
M7.11. Найти количество различных элементов в массиве.
M7.12. Дано натуральное число n. Определить количество различных цифр в нем. Например, в числе 1234 количество различных цифр равно 4, в числе 22424 — 2, в числе 333 — 1.
M7.13. В массиве имеются только два одинаковых элемента. Найти их.
M7.14. Получить последовательность десятичных цифр числа 2100.
M7.15. Получить последовательность десятичных цифр числа 100! ( n! 1 2 … n ).
M7.16. Дан массив целых чисел. Найти:
а) номер первого нечетного элемента. Если нечетных элементов в массиве нет, то должно быть напечатано соответствующее сообщение;
б) номер первого элемента, кратного числу 13. Если таких элементов в массиве нет, то должно быть напечатано соответствующее сообщение.
M7.17. Дан массив вещественных чисел. Определить, есть ли в нем отрицательные числа. В случае положительного ответа:
а) определить номер первого из них и напечатать все следующие за ним элементы;
б) определить номер последнего из них и напечатать все элементы, расположенные слева от него.
M7.18. Известны оценки по информатике 28 учеников класса. Есть ли среди них двойки?
M7.19. Известны данные о мощности двигателя 30 моделей легковых автомобилей. Есть ли среди них модель, мощность двигателя которой превышает 200 л. с.?
M7.20. Дан массив, упорядоченный по убыванию. Найти номер первого элемента, меньшего заданного числа a. Если таких элементов в массиве нет, то на экран должно быть выведено соответствующее сообщение.
M7.21. Дан массив, упорядоченный по возрастанию. Если в нем есть элементы, большие заданного числа n, то напечатать все элементы, следующие за первым из таких элементов. В противном случае на экран должно быть выведено соответствующее сообщение.
M7.22. Дан массив, упорядоченный по убыванию. Если в нем есть элементы, меньшие заданного числа a, то напечатать все элементы, следующие за первым из таких элементов, и все элементы, большие a. В противном случае на экран должно быть выведено соответствующее сообщение.
M7.23. Определить, есть ли в массиве хотя бы одна пара одинаковых соседних элементов. В случае положительного ответа определить номера элементов
первой из таких пар.
M7.24. Если в массиве есть хотя бы одна пара одинаковых соседних элементов, то напечатать все элементы, следующие за элементами первой из таких пар.
M7.25. Дан массив целых чисел. Определить, есть ли в нем хотя бы одна пара соседних нечетных чисел. В случае положительного ответа определить номера элементов первой из таких пар.
M7.26. Дан массив целых чисел. Если в нем есть хотя бы одна пара соседних четных чисел, то напечатать все элементы, предшествующие элементам последней из таких пар.
M7.27. Дан массив из 22 целых чисел из интервала от 0 до 66, представляющих собой условные обозначения костей домино (например, число 42 есть обозначение кости домино «2–4», число 33 — кости «3–3» и т. п.). Определить, соответствует ли последовательность элементов массива ряду костей домино, выложенному по правилам этой игры. Рассмотреть два случая:
а) последняя цифра каждого числа соответствует количеству точек на правой половине кости домино;
б) количеству точек на правой и левой половинах кости домино может соответствовать любая из цифр заданных чисел.
M7.28. Определить, есть ли в массиве хотя бы одна тройка соседних чисел, в которой средний элемент больше своих «соседей», т. е. предшествующего и последующего. В случае положительного ответа определить номера элементов первой из таких троек.
M7.29. Если в массиве есть хотя бы одна тройка соседних чисел, в которой средний элемент больше своих «соседей», т. е. предшествующего и последующего, то напечатать все элементы, предшествующие элементам последней из таких троек.
M7.30. Определить, является ли массив упорядоченным по возрастанию. В случае отрицательного ответа определить номер первого элемента, нарушающего такую упорядоченность.
M7.31. Имеется список учащихся класса с указанием роста каждого из них. Определить, перечислены ли ученики в списке в порядке убывания их роста.
M7.32. Имеются данные о сумме очков, набранных в чемпионате каждой из футбольных команд. Определить, перечислены ли команды в списке в соответствии с занятыми ими местами в чемпионате.
M7.33. В начале массива записаны несколько равных между собой элементов. Определить количество таких элементов и вывести все элементы, следующие за последним из них. Рассмотреть возможность того, что весь массив заполнен одинаковыми элементами. Условный оператор не использовать.
M7.34. Известны оценки по информатике каждого ученика класса. В начале списка перечислены все пятерки, затем все остальные оценки. Сколько учеников имеют по информатике оценку «5»? Рассмотреть возможность случая, что такую оценку имеют все ученики. Условный оператор не использовать.


NEW: Наш Чат, в котором вы можете обсудить любые вопросы, идеи, поделиться опытом или связаться с администраторами.


Помощь проекту:

Понравилась статья? Поделиться с друзьями:
0 0 голоса
Рейтинг статьи
Подписаться
Уведомить о
7 комментариев
Новые
Старые Популярные
Межтекстовые Отзывы
Посмотреть все комментарии

///7.3
a) int[] arr = { 10, 0 , 65530, 0, 7 , 77 , 0 };

      bool FoundFirstZero = false;

      foreach (int item in arr)
      {
        if (item == 0 && !FoundFirstZero)
        {
          FoundFirstZero = true;
          continue;
        }
        if (item == 0)
        {
          Console.Write(item+»\t»);
        }
      }

b) int[] arr = { 10, 0 , 65530, 0, 7 , 77 , 0 };

      bool FoundFirstZero = false;

      for (int i=arr.Length-1; i >= 0; i—)
      {
        if (arr[i] == 0 && !FoundFirstZero)
        {
          FoundFirstZero = true;
          continue;
        }
        if (arr[i] == 0)
        {
          Console.Write(arr[i]+»\t»);
        }
      }

///7.2
a) int[] arr = { 10, 1111 , 65530, 7 , 777890 , 66 , 111_111 };

      int IndexValue = Array.FindIndex(arr, i => i > 65530);

      Console.WriteLine(«Индекс первого элемента больше 65530 == {0}»,IndexValue);
b) int[] arr = { 10, 1111 , 65530, 7 , 777890 , 66 , 111_111 };

      int IndexValue = Array.FindLastIndex(arr, i => i > 65530);

      Console.WriteLine(«Индекс последнего элемента больше 65530 == {0}»,IndexValue);

///M.7.1
a) int [] arr = { 1, 3, 22, 11, 5, 77,5, 7, 89, 91 };

int IndexValue = Array.IndexOf(arr, 5);

Console.WriteLine(«Индекс первого элемента равного 5 == {0}»,IndexValue);

b) int LastIndexValue = Array.LastIndexOf(arr, 5);

      Console.WriteLine(«Индекс последнего элемента равного 5 == {0}»,LastIndexValue);

M7.34. Известны оценки по информатике каждого ученика класса. В начале списка перечислены все пятерки, затем все остальные оценки. Сколько учеников имеют по информатике оценку «5»? Рассмотреть возможность случая, что такую оценку имеют все ученики. Условный оператор не использовать.

 static void Main(string[] args)
        {
            int[] array = new int[15] { 5, 5, 5, 5, 5, 5, 5, 5, 4, 4, 4, 4, 3, 2, 2 };
            int count=0, i=0;
            while (array[i]<array.Length && array[i]==5)
            {
                count++;
                i++;
            }
            Console.WriteLine(count);
            Console.ReadKey();
        
        }

M7.14. Получить последовательность десятичных цифр числа 2100.

using System;
using System.Linq;
using System.Text;
using System.Collections.Generic;


namespace Learning_Csharp
{
    interface ISolution
    {
        void Result();
    }


    abstract class Array
    {
        protected readonly int missionNumber = 2100;


        protected abstract int[] array { get; set; }


        protected readonly int lengthArray;


        public Array() => lengthArray = missionNumber.ToString().Length;


        protected abstract void PrintArray(int[] array);
    }


    class Solution : Array, ISolution
    {


        protected override int[] array { get; set; }


        public Solution()
        {
            array = new int[lengthArray];
        }


        private void Answer()
        {
            for (int i = 0; i < array.Length; i++)
            {
                switch (i)
                {
                    case 0:
                        array[i] = missionNumber / 100; break;
                    case 1:
                        array[i] = (missionNumber - 100) / 100; break;
                    case 2:
                        array[i] = (missionNumber - 2000) / 10; break;
                    case 3:
                        {
                            string helper = missionNumber.ToString();


                            string secondHelper = helper[1].ToString();


                            secondHelper += helper[0].ToString();


                            array[i] = Convert.ToInt32(secondHelper);


                            break;
                        }
                    default: { Console.Write("I dont know this element..."); break; }
                }
            }
        }


        protected override void PrintArray(int[] array)
        {
            Console.Write("Array:\t");
            for (int i = 0; i < array.Length; i++) { Console.Write(array[i] + " "); }
        }


        public void Result()
        {
            Answer();
            Console.WriteLine("Answer:\n");
            PrintArray(array);
        }
    }


    class Resultate
    {
        public void PrintResult(ISolution solution) => solution.Result();
    }


    class Program
    {
        static void Main(string[] args)
        {
            ISolution solution = new Solution();


            var result = new Resultate();


            if (solution is ISolution userSol)
            {
                result.PrintResult(userSol);
            }


        }
    }
}

M7.3. Известно, что в массиве имеются нулевые элементы. Напечатать:
а) все элементы, кроме первого из них;
б) все элементы, кроме последнего из них.
Примечание. В обеих задачах условный оператор не использовать.

using System;
using System.Linq;
using System.Text;
using System.Collections.Generic;


namespace Learning_Csharp
{
    interface ISolution
    {
        void Result();
    }


    abstract class CreateArray
    {
        protected int[] array;


        protected readonly Random random = new Random();


        public CreateArray(int[] array) { this.array = array; }


        private void Create()
        {
            for (int i = 0; i < array.Length; i++) { Console.Write($"Write number for {i} array element: "); int.TryParse(Console.ReadLine(), out array[i]); }
        }


        protected abstract void PrintArray(in int[] array);


        protected void Create_Array()
        {
            Create();
        }
    }


    class Solution : CreateArray, ISolution
    {
        private int FirstZeroElement { get; set; }


        private int LastZeroElement { get; set; }


        public Solution(int[] array) : base(array) { Create_Array(); }


        private void FindFirstAndLastZeroElement()
        {
            for (int i = 0; i < array.Length; i++)
            {
                if (array[i] == 0)
                {
                    FirstZeroElement = i;
                    break;
                }
            }


            for (int i = 0; i < array.Length; i++)
            {
                if (array[i] == 0)
                    LastZeroElement = i;
            }
        }


        private void AnswerForMission(int count = 0)
        {
            FindFirstAndLastZeroElement();


            int j = 0;


            int k = 0;


            Console.WriteLine("Point A:");


            for (int i = 0; i < array.Length; i++)
            {
                for (; j < FirstZeroElement && j < array.Length; j++, k++)
                    Console.WriteLine(array[j]);


                k++;


                for (; k > FirstZeroElement && k < array.Length; k++)
                    Console.WriteLine(array[k]);
            }


            while (count < 1) { Console.WriteLine(); count++; }


            Console.WriteLine("Point B:");


            j = 0;


            k = 0;


            for (int i = 0; i < array.Length; i++)
            {
                for (; j < LastZeroElement && j < array.Length; j++)
                    Console.WriteLine(array[j]);
            }


        }


        protected override void PrintArray(in int[] array)
        {
            Console.Write("Array:\t");
            for (int i = 0; i < array.Length; i++) { Console.Write(array[i] + " "); }
        }


        public void Result()
        {
            AnswerForMission();
        }
    }


    class Program
    {
        static void Main(string[] args)
        {
            int numbersOfArrayElements = 10;


            int[] array = new int[numbersOfArrayElements];


            ISolution userSol = new Solution(array);


            userSol.Result();
        }
    }
}

#7.9
public void GetH() //вариант а)
    {
      Console.WriteLine();
      int i = 0;
      while (i<l)
      {
          if (arr[i] == n)
          {
            break;
          }
          else
          {
            Console.Write(arr[i] + » «);
          }
        i++;
      }
    }
    public void GetI() //вариант б)
    {
      Console.WriteLine();
      int i = 0;
      int j = 0;
      int n1 = 7;
      while (i < l)
      {
        if (arr[i] == n1)
        {
          j = i+1;
          break;
        }
        i++;
      }
      while (j < l)
      {
        if (arr[i] != n1 && arr[i] == arr[l — 1])
        {
          break;
        }
        Console.Write(arr[j] + » «);
        j++;
      }
    }

7
0
Оставьте комментарий! Напишите, что думаете по поводу статьи.x
()
x