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

НУЖНО СОСТАВИТЬ БЛОК СХЕМУ К СЛЕДУЮЩИМ ЗАДАЧАМ: Дан одномерный массив, посчитать количество нулевых элементов.

Дан двумерный массив, посчитать произведение отрицательных элементов и количество элементов, находящихся под главной диагональю

👇
Открыть все ответы
Ответ:
margusqw
margusqw
11.08.2020
Option Explicit

Const n = 50 'Максимальная емкость стека
Dim LIFO(1 To n) As Variant
Dim ptr As Integer  'указатель на вершину стека, моделируемого LIFO
Dim Overflow As Boolean
Dim EmptyLIFO As Boolean

Sub Push(Elem As Variant)
    'добавляет элемент на вершину стека
    If ptr < n Then
        ptr = ptr + 1
        LIFO(ptr) = Elem
        Overflow = False
        EmptyLIFO = False
    Else
        Overflow = True
    End If
End Sub

Sub Pop(Elem As Variant)
    'Возвращает элемент с вершины стека и удаляет его из стека
    If ptr > 0 Then
        Elem = LIFO(ptr)
        ptr = ptr - 1
    End If
    EmptyLIFO = (ptr = 0)
End Sub

Sub main()
    ' Пример работы со стеком - перестановка букв в словах строки.
    ' Не меняя порядка слов в строке, переставить в каждом слове буквы в обратном порядке.
    ' Слова разделяются ровно одним пробелом.
    Dim s As String, s1 As String, i As Integer, e As String
    s = Sheets("Лист1").Cells(1, 1).Value
    If Len(s) = 0 Then
        MsgBox "Нет входной строки"
        Exit Sub
    End If
    EmptyLIFO = True
    Overflow = False
    s1 = ""
    For i = 1 To Len(s)
        e = Mid(s, i, 1)    'Очередной символ
        If e <> " " Then
            Push e
        Else
            s1 = s1 + " "
            Do While Not EmptyLIFO
                Pop e
                s1 = s1 + e
            Loop
        End If
    Next i
    s1 = s1 + " "
    Do While Not EmptyLIFO
        Pop e
        s1 = s1 + e
    Loop
    s1 = Trim(s1)
    Sheets("Лист1").Cells(2, 1).Value = s1
End Sub
4,4(17 оценок)
Ответ:
karinka101
karinka101
11.08.2020
Var
  s: string;

function FindWord(first: integer): integer;
// Возвращает номер позиции правее first, где находится очередной разделитель
var
  i: integer;
  c: char;
begin
  i := first + 1;
  Result := 0;
  repeat
    c := s[i];
    if (c = ',') or (c = '.') then Result := i
    else i := i + 1
  until (Result > 0) or (c = '')
end;

var
  ib, ie, k,n: integer;

begin
  writeln('Введите строку, отделяя слова запятыми, в конце введите точку');
  readln(s);
  k := 0;
  ib := 1;
  n:=length(s);
  repeat
    ie := FindWord(ib);
    if ie > 0 then begin
      if UpCase(s[ib]) = 'A' then k := k + 1;
      ib := ie + 1
    end;
  until (ie = 0) or (ie>=n);
  writeln('Количество слов, начинающихся с буквы "а", равно ', k)
end.

Введите строку, отделяя слова запятыми, в конце введите точку
A,roza,upala,na,lapu,azora,Antoshka,skazhi,ge,ty,del,moy,portfel?.
Количество слов, начинающихся с буквы "а", равно 3
4,4(21 оценок)
Это интересно:
Новые ответы от MOGZ: Информатика
logo
Вход Регистрация
Что ты хочешь узнать?
Спроси Mozg
Открыть лучший ответ