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

В электронную таблицу занесли данные о тестировании учеников. Ниже приведены первые пять строк таблицы.
В столбце A записан округ, в котором учится ученик; в столбце B – фамилия; в столбце C – любимый предмет; в столбце D – тестовый .
Всего в электронную таблицу были занесены данные по 1000 ученикам.
Выполните задание
Откройте файл с данной электронной таблицей task19-33.xls. На основании данных, содержащихся в этой таблице, ответьте на два во Сколько учеников в Северо-Западном округе (СЗ) выбрали в качестве любимого предмета русский язык? ответ на этот во запишите в ячейку H2 таблицы.
2. Каков средний тестовый у учеников Западного округа (З)? ответ на этот во запишите в ячейку H3 таблицы с точностью не менее двух знаков после запятой.
Полученную таблицу необходимо сохранить и сдать на проверку.

👇
Открыть все ответы
Ответ:
Romanby1
Romanby1
15.05.2023
Вот так эту задачу можно решить на современном Паскале. Но, к сожалению, так в школах не учат, заставляя тратить время и силы на громоздкие программы, в которых легко ошибиться.

// PascalABC.Net 3.2

begin
  Write(ReadlnString('->').ToWords.Where(x->x.Left(2)='со').Count)
end.

Пример:
-> Три собаки сосали одну косточку
2

А вот так (примерно, потому что обычно еще хуже) учат писать программы в школе...

var
  s:string;
  i,n,k,p:integer;
begin
  Write('->'); Readln(s);
  if Copy(s,1,2)='со' then k:=1 else k:=0;
  Delete(s,1,3);
  repeat
    i:=Pos(' со',s);
    if i>0 then begin
      Inc(k);
      Delete(s,1,i+3)
      end
  until i=0;
  Writeln(k)
end.
4,8(96 оценок)
Ответ:
AknelaYouTuber
AknelaYouTuber
15.05.2023
В Вашем варианте после while необходимо писать begin, а после Writeln - end. Но само по себе решение некрасивое.
Вот Вам еще два на выбор.

1. Без массива

var
  s,n:integer;
begin
  Write('Введите сумму: '); Read(s);
  n:=s div 5000;
  if n>0 then begin
    Writeln('Банкнот "5000" всего: ',n);
    s:=s mod 5000
    end;
  n:=s div 1000;
  if n>0 then begin
    Writeln('Банкнот "1000" всего: ',n);
    s:=s mod 1000
    end;
  n:=s div 500;
  if n>0 then begin
    Writeln('Банкнот "500" всего: ',n);
    s:=s mod 500
    end;
  n:=s div 100;
  if n>0 then begin
    Writeln('Банкнот "100" всего: ',n);
    s:=s mod 100
    end;
  n:=s div 50;
  if n>0 then begin
    Writeln('Банкнот "50" всего: ',n);
    s:=s mod 50
    end;
  n:=s div 10;
  if n>0 then begin
    Writeln('Банкнот "10" всего: ',n);
    s:=s mod 10
    end;
  if s>0 then Writeln('Недоплачено: ',s)
end.

Пример:
Введите сумму: 162504
Банкнот "5000" всего: 32
Банкнот "1000" всего: 2
Банкнот "500" всего: 1
Недоплачено: 4

2. С массивом

const
  k:array[1..6] of integer=(5000,1000,500,100,50,10);
var
  s,n,i:integer;
begin
  Write('Введите сумму: '); Read(s);
  for i:=1 to 6 do begin
    n:=s div k[i];
    if n>0 then begin
      Writeln('Банкнот "',k[i],'" всего: ',n);
      s:=s mod k[i]
      end
    end;
  if s>0 then Writeln('Недоплачено: ',s)
end.

Пример
Введите сумму: 15470
Банкнот "5000" всего: 3
Банкнот "100" всего: 4
Банкнот "50" всего: 1
Банкнот "10" всего: 2
4,5(42 оценок)
Это интересно:
Новые ответы от MOGZ: Информатика
logo
Вход Регистрация
Что ты хочешь узнать?
Спроси Mozg
Открыть лучший ответ