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

20 б измените текст программы примера так, чтобы решалась следующая : есть информация по студентам (фамилия, курс (1-5), 5 оценок за последнюю сессию). вывести через запятую фамилии первокурсников, которые имеют средний , больший или равный 4. program pr2; type student = record {объявление нового типа данных student} lastname: string ; {фамилия студента} bal: array [1..5] of integer; {массив для 5-ти оценок} average: real {средний студента} end; var pupil: array [1..100] of student; {массив pupil (максимум из 100 элементов) типа student} n,i,j,s : integer; {переменные целого типа} begin write ('введите количество студентов: '); readln(n); for i: =1 to n do begin {запрос данных по n студентам} with pupil[i] do begin write ('введите фамилию студента №', i ,': '); {запрос фамилии студента под номером i} readln (lastname); s: =0; {целочисленная переменная для определения суммы студента} for j: = 1 to 5 do begin {цикл для обработки 5-ти оценок каждого студента} write ('введите оценку за экзамен №: ', j, ': ' ); readln (bal [j] ); s : = s+ bal[j]; {суммирование 5-ти оценок студента} end; average: = s/5; {определение среднего значения и запись в переменную average} end; end; writeln; writeln ( 'студенты, имеющие средний больший или равный 4'); for i: =1 to n do begin if pupil[i].average > =4 then {если средний студента > =4} writeln (pupil[i].lastname, ' (средний ', pupil[i].average: 4: 1, ')'); {то вывод на экран фамилии студента и его среднего } end; end

👇
Ответ:
Динара010
Динара010
09.04.2023
1. Надо добавить точку в последней строке программы. Иначе работать не будет.
2. Меняется всего одна строка в программе:

program pr2;

type
  student = record {объявление нового типа данных student}
    LastName: string; {фамилия студента}
    bal: array [1..5] of integer; {массив для 5-ти оценок}
    average: real {средний студента}
  end;

var
  pupil: array [1..100] of student; {массив pupil (максимум из 100 элементов) типа student}
  n, i, j, s: integer;{переменные целого типа}

begin
  write('Введите количество студентов: ');
  readln(n);
  for i := 1 to n do
  begin{запрос данных по n студентам}
    with pupil[i] do
    begin
      Write('Введите фамилию студента №', i, ': '); {запрос фамилии студента под номером i}
      Readln(LastName);
      s := 0; {целочисленная переменная для определения суммы студента}
      for j := 1 to 5 do
      begin{цикл для обработки 5-ти оценок каждого студента}
        write('Введите оценку за экзамен №:', j, ': ' );
        readln(bal[j] );
        s := s + bal[j]; {суммирование 5-ти оценок студента}
      end;
      average := s / 5; {определение среднего значения и запись в переменную average}
    end;
  end;
  writeln;
  writeln( 'Студенты, имеющие средний больший или равный 4');
  for i := 1 to n do
  begin
    if pupil[i].average >= 4 then {если средний студента >=4}
    write(pupil[i].LastName,', ');
  end;
end.
4,6(1 оценок)
Открыть все ответы
Ответ:
Ева433
Ева433
09.04.2023
1)
var
    s: string[6];
    n: integer;

begin
    s := 'отлично';
    n := length(s);
    writeln(length('отлично'));
    writeln(n);
end.

Изначально выставлен тип string[6], значит если присвоить строку больше, то ее обрежет по 6 символов, вот и весь прикол
ответ 6

2) рисунок

3)var
    s, s1: string;
    n: integer;

begin
    s := 'информатика';
    s1 := copy(s, 3, 5);
    n := pos(s, s1);
    writeln('s=', s);
    writeln('s1=', s1);
    writeln('n=', n);
end.

Вывод
s=информатика
s1=форма
n=0

Все верно, в s1 не содержится s, а наоборот

Садекватным объяснением! 1) дан фрагмент программы: var s: string[6]; n: integer; begin s: ='отлично
4,4(27 оценок)
Ответ:
артём0092
артём0092
09.04.2023
Var
    i, n, s: integer;

begin
    readln(n);
    i := 0;
    s := 0;
    
    while i < 7 do
    begin
        if (n mod 2 = 1) then begin
            s := s + n;
            i := i + 1;
        end;
        n := n + 1;
    end;
    
    writeln(s);
end.

var
    i, n, s: integer;

begin
    readln(n);
    i := 0;
    s := 0;
    
    repeat
        if (n mod 2 = 1) then begin
            s := s + n;
            i := i + 1;
        end;
        n := n + 1;
    until i >= 7;
    
    writeln(s);
end.

var
    i, n, s: integer;

begin
    readln(n);
    n := n + (n + 1) mod 2;
    s := 0;
    
    for i := 1 to 7 do
    begin
        s := s + n;
        writeln(n);
        n := n + 2;
    end;
    
    writeln(s);
end.
4,5(28 оценок)
Новые ответы от MOGZ: Информатика
logo
Вход Регистрация
Что ты хочешь узнать?
Спроси Mozg
Открыть лучший ответ