М
Молодежь
К
Компьютеры-и-электроника
Д
Дом-и-сад
С
Стиль-и-уход-за-собой
П
Праздники-и-традиции
Т
Транспорт
П
Путешествия
С
Семейная-жизнь
Ф
Философия-и-религия
Б
Без категории
М
Мир-работы
Х
Хобби-и-рукоделие
И
Искусство-и-развлечения
В
Взаимоотношения
З
Здоровье
К
Кулинария-и-гостеприимство
Ф
Финансы-и-бизнес
П
Питомцы-и-животные
О
Образование
О
Образование-и-коммуникации
Женя02458
Женя02458
10.06.2022 15:07 •  Информатика

Задание 3. Два солдата подошли к реке и увидели, как на лодке катаются два мальчика. Солдатам необходимо
переправиться на другой берег. Составьте алгоритм пере-
правы солдат на другой берег, если лодка вмещает либо одного солдата, либо двух мальчиков, а солдата и мальчика уже не вмещает. При записи алгоритма используйте обозначение:1м.-один мальчик, 2м.-два мальчика, 1с.-один солдат.

👇
Ответ:
kuanyshbek2003
kuanyshbek2003
10.06.2022

ответ и Объяснение

1.2м подъезжают к противоположному берегу, 1м остаётся, другой привозит лодку солдатам.

2.1с плывет на другую сторону без мальчика

3.1м плывет с лодкой к другому берегу

4.2м плывут на другой берег

5.1м остаётся на берегу, другой плывет к солдату

6.1с плывёт на другой берег и отдает лодку мальчику

4,4(99 оценок)
Открыть все ответы
Ответ:
ghvcn
ghvcn
10.06.2022
Using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Text.RegularExpressions;

internal static class Program
{
    private const string glasnye_ = "aeiouy";
    private const string soglasnye_ = "bcdfghjklmnpqrstvwxz";

    private static void Main()
    {
        try
        {
            Console.WriteLine("Введите строку слов (любые символы будут считаться разделителями)");
            var s = Console.ReadLine();
            Console.WriteLine($"Гласных больше чем согласных:\n {Task1(s).Aggregate("", (current, t) => current + t.ToUpper() + " ")}");
            Console.WriteLine();
            Console.WriteLine($"Гласных больше чем согласных:\n {Task1Regex(s).Aggregate("", (current, t) => current + t.ToUpper() + " ")}");
            Console.ReadLine();
        }
        catch(Exception e)
        {
            Console.WriteLine(e);
            Console.ReadLine();
        }
    }

    private static IEnumerable<string> Task1(string s)
    {
        Console.ForegroundColor = ConsoleColor.Cyan;
        Console.WriteLine("Без регулярных выражений");

        var words = s.Split(new[] {' ', '-', ',', '.', '*', ':', ';', '_'}, StringSplitOptions.RemoveEmptyEntries).ToList();

        var sb = new StringBuilder();
        for (var i = 0; i < words.Count; i++)
            sb.AppendLine($"Слово[{i}] = {words[i].ToUpper()}");

        Console.Write(sb.ToString());

        var result = new List<string>();

        foreach (var word in words)
        {
            var k = 0;
            foreach (var c in word.ToLower().ToCharArray())
            {
                k += glasnye_.Contains(c) ? 1 : 0;
                k -= soglasnye_.Contains(c) ? 1 : 0;
            }

            if (k > 0)
                result.Add(word);
        }

        return result;
    }

    private static IEnumerable<string> Task1Regex(string s)
    {
        Console.ForegroundColor = ConsoleColor.Green;
        Console.WriteLine("С регулярными выражениями");

        var ms = Regex.Matches(s, @"[A-z]+", RegexOptions.IgnoreCase);

        var sb = new StringBuilder();
        for (var i = 0; i < ms.Count; i++)
            sb.AppendLine($"Слово[{i}] = {ms[i].Value.ToUpper()}");

        Console.Write(sb.ToString());

        var result = new List<string>();
        for (var i = 0; i < ms.Count; i++)
        {
            var v = ms[i].Value;
            var k = Regex.Matches(v, $"[{glasnye_}]", RegexOptions.IgnoreCase).Count;
            k -= Regex.Matches(v, $"[{soglasnye_}]", RegexOptions.IgnoreCase).Count;
            if (k > 0)
                result.Add(v);
        }

        return result;
    }
}
4,4(97 оценок)
Ответ:
gabduhakovaari
gabduhakovaari
10.06.2022
Program n_58;

var
  s: array[1..10] of real = (244.1, 357, 132, 43.1, 504.8, 301.2, 312.7, 92.0, 337, 551); // площадь
  gn: array[1..10] of real; // густота населения
  k: array[1..10] of real = (58100, 81200, 10300, 5190, 39100, 57200, 38500, 9800, 5060, 57800); // количество
  n: array[1..10] of string = ('Великобритания', 'Германия', 'Греция', 'Дания', 'Испания', 'Италия', 'Польша', 'Португалия', 'Финляндия', 'Франция');
  i, j: integer;
  x: real;
  r: string;

begin
  for i := 1 to 10 do gn[i] := k[i] / s[i];
  for i := 1 to 10 do
    for j := i + 1 to 10 do
      if gn[i] > gn[j] then 
      begin
        x := gn[j];gn[j] := gn[i];gn[i] := x;
        r := n[j];n[j] := n[i];n[i] := r;
      end;
  for i := 1 to 10 do writeln(n[i], ' ', gn[i]:0:2);
end.
4,8(62 оценок)
Это интересно:
Новые ответы от MOGZ: Информатика
logo
Вход Регистрация
Что ты хочешь узнать?
Спроси Mozg
Открыть лучший ответ