С Новым годом! Форум программистов, компьютерный форум, киберфорум
Pascal ABC
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.82/11: Рейтинг темы: голосов - 11, средняя оценка - 4.82
6 / 0 / 0
Регистрация: 22.12.2011
Сообщений: 10
1

Файлы: Выяснить, сколько учеников школы не имеют оценок ниже четырех

13.01.2012, 22:27. Показов 1941. Ответов 6
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Дан файл F cодержащий сведения об учениках: Имя и фамилия, год обучения и буква, и оценки, которые ученики получили за последнюю четверть. Выяснить сколько учеников школы не имеют оценок ниже четырех.

Большое спасибо и если есть возможность, то хотелось бы с объяснениями.
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
13.01.2012, 22:27
Ответы с готовыми решениями:

Выяснить, сколько учеников школы не имеют оценок ниже четырех
Дан файл f, содержащий сведения об учениках школы: имени и фамилии и наименование класса (года...

Выяснить, сколько учеников школы не имеют отметки ниже четырёх.
Задача на теме "запись данных" Выяснить, сколько учеников школы не имеют отметки ниже четырёх.

Выяснить, сколько учеников школы не имеют отметок ниже четырех
Дан файл f, содержащий те же сведения об учениках, фамилия имя класс буква, и дополнительно...

Выяснить, сколько учеников школы не имеют отметок ниже четверок
Сведения об ученике состоят из его имени и фамилии и названия класса (года обучения и буквы), в...

6
Почетный модератор
7966 / 3937 / 2464
Регистрация: 30.10.2011
Сообщений: 5,377
13.01.2012, 22:54 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
uses crt;
 
type ucheniki = record                //описание записи
     name: string[10];
     fam:  string[10];
     kl:   integer;
     kll:  string[1];
     oz: array [1..20] of integer;    //массив для отметок
     end;
 
var u: ucheniki;                       //описание переменных
    i,j,n,m:integer;
    f: file of ucheniki;
 
begin
assign(f, 'C:\uch.dat');                //инициализация связи с файлом
rewrite(f);                             //открытие Файла для записи
write('Сколько учеников? ');
readln(n);
write('Сколько отметок у одного ученика? ');
readln(m);
writeln('Внесите данные об учениках: ');    //заполнение базы
for i:=1 to n do
    with u do
         begin
         write('Фамилия ',i,' учащегося: '); readln(fam);
         write('Имя: '); readln(name);
         write('Класс(цифра): '); readln(kl);
         write('Класс(буква): '); readln(kll);
         writeln('Oценки, всего ',m,': ');
         for j:=1 to m do readln(oz[j]);
         write(f,u);
         end;
close (f);
end.
для анализа файла
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
uses crt;
 
type ucheniki = record;
     name: string[10];
     fam:  string[10];
     kl:   integer;
     kll:  string[1];
     oz: array [1..20] of integer;
     end;
 
var u: ucheniki;
    i,j,k,n,m:integer;
    f: file of ucheniki;
 
begin
assign(f, 'C:\uch.dat');                         //ассоциация с файлом
write('Сколько отметок у одного ученика? ');
readln(m);
reset(f);
while not eof(f) do                              //считывание до конца файла
      begin
      read(f,u);
      with u do                                  //с каждой записью
           for j:=1 to m do                      //в цикле с параметром для всех отметок одного ученика
               if oz[j]>3 then inc(k);            //если отметка не ниже 4, увеличить счетчик
      if k=m then inc(n);                         //если все отмети не ниже 4, увеличить другой счетчик
      end;
writeln(n,' учащихся не имеют отметок ниже 4');   //вывод
close (f);
readln;
end.
2
Почетный модератор
7966 / 3937 / 2464
Регистрация: 30.10.2011
Сообщений: 5,377
14.01.2012, 00:58 3
Лучший ответ Сообщение было отмечено как решение

Решение

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
uses crt;
 
type ucheniki = record                //описание записи
     name: string[10];
     fam:  string[10];
     kl:   integer;
     kll:  string[1];
     oz: array [1..20] of integer;    //массив для отметок
     end;
 
var u: ucheniki;                       //описание переменных
    i,j,n,m,k,ku:integer;
    f: file of ucheniki;
 
begin
assign(f, 'C:\uch.dat');                //инициализация связи с файлом
rewrite(f);                             //открытие Файла для записи
write('Сколько учеников? ');
readln(n);
write('Сколько отметок у одного ученика? ');
readln(m);
writeln('Внесите данные об учениках: ');    //заполнение базы
for i:=1 to n do
    with u do
         begin
         write('Фамилия ',i,' учащегося: '); readln(fam);
         write('Имя: '); readln(name);
         write('Класс(цифра): '); readln(kl);
         write('Класс(буква): '); readln(kll);
         writeln('Oценки, всего ',m,': ');
         for j:=1 to m do readln(oz[j]);
         write(f,u);
         end;
reset(f);
while not eof(f) do                              //считывание до конца файла
      begin
      read(f,u);
      k:=0;
      with u do                                  //с каждой записью
           for j:=1 to m do                      //в цикле с параметром для всех отметок одного ученика
               if oz[j]>3 then inc(k);            //если отметка не ниже 4, увеличить счетчик
      if k=m then inc(ku);                         //если все отмети не ниже 4, увеличить другой счетчик
      end;
writeln(ku,' учащихся не имеют отметок ниже 4');   //вывод
close (f);
readln;
end.
4
6 / 0 / 0
Регистрация: 22.12.2011
Сообщений: 10
14.01.2012, 01:29  [ТС] 4
Огромнейшее спасибо!!!
0
6 / 0 / 0
Регистрация: 22.12.2011
Сообщений: 10
04.02.2012, 12:18  [ТС] 5
Никак не могу понять, что за счетчик k и ku, и зачем их увеличивать на 1.
Объясните пожалуйста, очень надо. Спасибо!
0
любитель покушать
687 / 641 / 248
Регистрация: 25.09.2011
Сообщений: 1,313
04.02.2012, 13:09 6
Цитата Сообщение от КонецСвета Посмотреть сообщение
Pascal
1
2
if oz[j]>3 then inc(k); //если отметка не ниже 4, увеличить счетчик
 if k=m then inc(ku); //если все отмети не ниже 4, увеличить другой счетчик
написали же
0
Почетный модератор
7966 / 3937 / 2464
Регистрация: 30.10.2011
Сообщений: 5,377
04.02.2012, 17:33 7
Valeriy.boss, нам надо убедиться, что среди отметок ученика нет ни одной ниже четверки. поэтому
1) перебираем в цикле все отметки ученика, проверяем - если отметка не ниже 4, увеличиваю первый счетчик
2) если количество отметок, которые не ниже 4, совпадает с общим количеством отметок (то есть все отметки ученика соответствуют условию), то увеличиваю уже ku, то есть количество учеников с отметками не ниже 4
1
04.02.2012, 17:33
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
04.02.2012, 17:33
Помогаю со студенческими работами здесь

Выясните, сколько учеников имеют оценки ниже 4
Сведения об ученике состоят с его имени и фамилии, названия класса (года учёбы и буквы), в котором...

Составить список учеников школы: перевести в следующий класс тех учеников, которые имеют успешные оценки
Составить список учеников школы, включив следующие данные: имя, фамилия, оценки по трем предметам....

Сформируйте массив из лучших учеников школы, т.е. из учеников, не имеющих отметок ниже 4 и по сумме баллов, не уступающих другим ученикам.
1. Сведения об ученике состоят из имени, фамилии, названия класса(год обучения и буквы),оценок за...

Известно количество учеников в каждом из четырех классов каждой параллели школы с первой по одиннадцатую. Код внутри
Здравствуйте! Возникла проблема с выводом минимального числа в столбце двумерного массива (в задаче...


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

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru