Форум программистов, компьютерный форум, киберфорум
Pascal (Паскаль)
Войти
Регистрация
Восстановить пароль
 
0 / 0 / 3
Регистрация: 24.08.2012
Сообщений: 76
1

Узнать количество парней на 4 курсе, среди них кто сдал зимнюю сессию без троек

11.10.2015, 13:12. Показов 357. Ответов 1
Метки нет (Все метки)

Сформировать массив содержащий несколько студентов из разных курсов. Узнать кол-во парней на 4 курсе, среди них кто сдал зимнюю сессию без троек.

На данный момент программа выводит сколько парней на 4 курсе.
Кол-во студентов сдавших сессию без троек, неправильно выводит.
Можете подсказать где ошибка?
Вот наработок мой.

Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
program student;
const
    n=5;
type
    stud=record
      familia:string[20];
      imya:string[10];
      pol:string[1];
      kurs:integer;
      zim_ses:array[1..6] of integer;
    end;
 
var st:array[1..n] of stud;
    i,j,k,q:integer;
begin
k:=0;
  for i:=1 to n do
   begin
      write('Фамилия - ');
        readln(st[i].familia);
      write('Имя - ');
        readln(st[i].imya);
      write('Пол - ');
        readln(st[i].pol);
      write('Курс - ');
        readln(st[i].kurs);
      write('Оценки зимней сессии - ');
      for j:=1 to 4 do
        begin
          st[i].zim_ses[j]:=3+random(3);
          write(st[i].zim_ses[j],' ');
        end;
    writeln;
   end;
   
  for i:=1 to n do
    begin
      if (st[i].kurs=4)and(st[i].pol='М') then
        begin
          k:=k+1;
        end;
    end;
  
  for i:=1 to k do
    begin
      if st[i].zim_ses[j]>3 then
        begin
          q:=q+1;
        end;
    end;
  
   writeln('_______________________________________');
  for i:=1 to n do
   begin
      writeln('Фамилия - ',st[i].familia);
      writeln('Имя - ',st[i].imya);
      writeln('Пол - ',st[i].pol);
      writeln('Курс - ',st[i].kurs);
      write('Оценки зимней сессии - ');
      for j:=1 to 4 do
        begin
          write(st[i].zim_ses[j],' ');
        end;
      writeln;
   end;
  writeln('Кол-во парней на 4 курсе - ',k,' .Из них без троек зим. сессию сдали - ',q);
end.
0

Помощь в написании контрольных, курсовых и дипломных работ здесь.

Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
11.10.2015, 13:12
Ответы с готовыми решениями:

Рассчитать средний балл каждого студента и начислить стипендию тем кто сдал без троек
Дана задачка: В БД содержится информация о студентах Ввуза: ФИО, №группы, результаты сдачи сессии...

Найти количество студентов, сдавших сессию без троек
Разработать модуль и применить его в основной программе. Модуль должен содержать процедуру...

Сформировать два файла, в один записать всех, кто не сдал экзамен, в другой – кто сдал
Ввести данные о 5-ти студентах: фамилию, его оценку за экзамен. Сформировать два файла, в один...

Сформировать два файла, в один записать всех, кто не сдал экзамен, в другой – кто сдал
Ввести данные о 5-ти студентах: фамилию, его оценку за экзамен. Сформировать два файла, в один...

1
CAPITAL OF ROCK!
1280 / 707 / 982
Регистрация: 03.03.2010
Сообщений: 2,286
11.10.2015, 17:42 2
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
const
    n = 10;
    m = 6;
type
    TStud = record
        familia: String[20];
        imya: String[10];
        pol: Char;
        kurs: 1..7;
        zim_ses: Array[1..m] Of Integer;
    end;
var
    arr: Array[1..n] Of TStud;
    i, j, count1, count2: Byte;
    state: Boolean;
begin
    Randomize;
    for i := 1 to n do
        with arr[i] do
        begin
            Write('Фамилия - '); ReadLn(familia);
            Write('Имя - '); ReadLn(imya);
            Write('Пол - '); ReadLn(pol);
            Write('Курс - '); ReadLn(kurs);
            Write('Оценки зимней сессии - ');
            for j := 1 to m do
            begin
                zim_ses[j] := Random(3) + 3;
                Write(zim_ses[j]:2);
            end;
            WriteLn; WriteLn('------------------------');
        end;
    count1 := 0; count2 := 0;
    for i := 1 to n do
        with arr[i] do
        begin
            state := True; j := 1;
            while (state And (j <= m)) do
            begin
                state := zim_ses[j] > 3;
                Inc(j);
            end;
            if ((kurs = 4) And (pol = 'M'))
            then
            begin
                Inc(count1);
                if (state)
                then
                    Inc(count2);
            end;
        end;
    WriteLn('Количество парней на 4 курсе: ', count1, '. Из низ без троек в зимней сессии: ', count2, '.');
end.
1
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
11.10.2015, 17:42

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

Выбор студента с максимальным ростом, сдавшего сессию без троек
Может кто нибудь помочь... выбор студента с максимальным ростом, сдавшего сессию без троек

Вывести студентов которые не сдали зимнюю сессию
)) Вывести студентов у которые не сдали зиммнюю сессию!

Как вставить функцию (структура Студент (поля: ФИО и 4 оценки за экзамен) - вывести данные о студентах, сдавших сессию без троек)
Дана информация о пяти студентах. Структура имеет поля: фамилия, имя отчество и 4 оценки за...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.