Найти в файле строки, содержащие определенные значения

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

Примерное содержание файла:

Иванов О. 4
Петров И. 3
Дмитриев Н. 2
Смирнова О. 4
Керченских В. 5
Котов Д. 2
Бирюкова Н. 1
Данилов П. 3
Аранских В. 5
Лемонов Ю. 2
Олегова К. 4

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

После того, как файл будет открыт, его надо считывать построчно. Из каждой строки надо «вырезать» оценку. Это последний или предпоследний символ строки. Если оценка меньше, чем 3, то выводить всю строку на экран.

Полученную оценку из каждой строки, надо преобразовывать к целому числу и добавлять к сумме, а также при считывании каждой строки увеличивать на 1 счетчик человек.

После того, как будет достигнут конец файла, его надо закрыть, посчитать средний балл и вывести его на экран.

Pascal



var
f: text;
s: string;
sum,g,n: word;
begin
assign(f,'class8.txt');
reset(f);
sum := 0;
n := 0;
while not eof(f) do begin
readln(f,s);
val(s[length(s)],g);
sum := sum + g;
n := n + 1;
if g < 3 then
writeln(s);
end;
writeln('Средний балл: ', sum/n:4:2);
end.



Дмитриев Н. 2
Котов Д. 2
Бирюкова Н. 1
Лемонов Ю. 2
Средний балл: 3.18

Язык Си



#include < stdio.h>

main() {
FILE *f;
char s1[20], s2[3];
unsigned g, sum, n;
f = fopen("class8.txt","r");
sum = n = 0;
while (fscanf(f, "%s%s%u", s1, s2, &g) != EOF) {
if (g < 3) printf("%s %s %d\n",s1,s2,g);
sum += g;
n += 1;
}
fclose(f);
printf("Средний балл: %.2f\n", (float)sum/n);
}

Python



f = open('class8.txt')
suma = 0
n = 0
for i in f:
g = int(i[len(i)-2])
suma += g
n += 1
if g < 3:
print(i[:-1])
print('Средний балл: %.2f' % (suma/n))

Basic-256



open "class8.txt"
sum = 0
n = 0
while not eof
s$ = readline
g = int(right(s$,2))
if g < 3 then print s$;
sum = sum + g
n = n + 1
endwhile
close
print "Средний балл: ";
print sum/n

Подписаться
Уведомить о
guest

0 комментариев
Межтекстовые Отзывы
Посмотреть все комментарии
Pascal


var
f: text;
s: string;
sum,g,n: word;
begin
assign(f,'class8.txt');
reset(f);
sum := 0;
n := 0;
while not eof(f) do begin
readln(f,s);
val(s[length(s)],g);
sum := sum + g;
n := n + 1;
if g < 3 then
writeln(s);
end;
writeln('Средний балл: ', sum/n:4:2);
end.



Дмитриев Н. 2
Котов Д. 2
Бирюкова Н. 1
Лемонов Ю. 2
Средний балл: 3.18
Язык Си


#include < stdio.h>

main() {
FILE *f;
char s1[20], s2[3];
unsigned g, sum, n;
f = fopen("class8.txt","r");
sum = n = 0;
while (fscanf(f, "%s%s%u", s1, s2, &g) != EOF) {
if (g < 3) printf("%s %s %d\n",s1,s2,g);
sum += g;
n += 1;
}
fclose(f);
printf("Средний балл: %.2f\n", (float)sum/n);
}
Python


f = open('class8.txt')
suma = 0
n = 0
for i in f:
g = int(i[len(i)-2])
suma += g
n += 1
if g < 3:
print(i[:-1])
print('Средний балл: %.2f' % (suma/n))
Basic-256


open "class8.txt"
sum = 0
n = 0
while not eof
s$ = readline
g = int(right(s$,2))
if g < 3 then print s$;
sum = sum + g
n = n + 1
endwhile
close
print "Средний балл: ";
print sum/n