Задача - Посчитать количество строк в файле и количество слов и символов в каждой строке - программирование на разных языках

Задача — Посчитать количество строк в файле и количество слов и символов в каждой строке — программирование на разных языках

Задачи по программированию с решением для школьников
Want create site? Find Free WordPress Themes and plugins.

Задача — Посчитать количество строк в файле и количество слов и символов в каждой строке
— программирование на Pascal, Си, Кумир, Basic-256, Python

В текстовом файле посчитать количество строк, а также для каждой отдельной строки определить количество в ней символов и слов.

Подсчет строк:
Ввести счетчик, присвоить ему 0.
Пока не будет достигнут конец файла, считывать очередную строку файла и увеличивать счетчик на 1.

Подсчет символов в строке:
Измерять длину очередной строки с помощью встроенный в язык программирования функции.

Подсчет слов в строке:

  1. Ввести счетчик слов и присвоить ему 0.
  2. Ввести флаговую переменную и присвоить ей 0 (сигнал нахождения вне слова).
  3. Пока не будет достигнут конец строки:
    1. Если очередной символ не пробел и флаг указывает на нахождение вне слова, то увеличить счетчик слов и присвоить флаговой переменной 1 (сигнал нахождения внутри слова).
    2. Если же очередной символ пробел, то присвоить флагу 0.

Pascal

var
f: text;
s: string;
line, chr, wrd: word;
i: byte;
flag: boolean;
begin
assign(f,’text.txt’);
reset(f);
line := 0;
while not EOF(f) do begin
readln(f,s);
write(s, ‘ — ‘);

line := line + 1;

chr := length(s);
write(chr, ‘ симв., ‘);

wrd := 0;
flag := false;
for i:=1 to chr do
if (s[i] <> ‘ ‘) and (flag = false) then begin
wrd := wrd + 1;
flag := true;
end
else
if s[i] = ‘ ‘ then flag := false;
writeln(wrd, ‘ сл.’);
end;
close(f);
writeln(line,’ стр.’);
end. Hello world! — 12 симв., 2 сл.
Привет мир! — 20 симв., 2 сл.
One, two, three — 15 симв., 3 сл.
Один, два, три — 24 симв., 3 сл.
4 стр.

Файл выполнен в среде GNU/Linux, компилятор FreePascal. Русские символы считаются за 2 символа. Например, в данном примере во второй строке 9 кириллических символа, пробел и восклицательный знак: 18 + 2 = 20 символов.

Язык Си

#include <stdio.h>
#include <string.h>
#define N 255
main() {
FILE *f;
char s[N];
unsigned short line, word, flag, i;
line = 0;
f = fopen(«text.txt»,»r»);
while (fgets(s, N, f) != NULL) {
line += 1;

word = 0;
flag = 0;
for (i=0; i < strlen(s); i++)
if (s[i] != ‘ ‘ && flag == 0) {
word += 1;
flag = 1;
} else
if (s[i] == ‘ ‘) flag = 0;

printf(«%st%ld симв., %d сл.n»,s,strlen(s),word);
}
printf(«%d стр.n», line);
fclose(f);
} Hello world!
13 симв., 2 сл.
Привет мир!
21 симв., 2 сл.
One, two, three
16 симв., 3 сл.
Один, два, три
25 симв., 3 сл.
4 стр.

Тот же «эффект», что и в Паскале: кириллический символ считается за 2.

Функция fgets() считывает строку вместе с символом перехода на новую строку. Аргумент N не позволяет считать больше указанного количества символов, но длина строки определяется по количеству считанных (т.е. фактической длиной строки).

Python

f = open(‘text.txt’)
line = 0
for i in f:
line += 1

flag = 0
word = 0
for j in i:
if j != ‘ ‘ and flag == 0:
word += 1
flag = 1
elif j == ‘ ‘:
flag = 0

print(i,len(i),’симв.’,word,’сл.’)

print(line,’стр.’)
f.close() Hello world!
13 симв. 2 сл.
Привет мир!
12 симв. 2 сл.
One, two, three
16 симв. 3 сл.
Один, два, три
15 симв. 3 сл.
4 стр.

Символ перехода на новую строку учитывается.

КуМир

использовать Файлы П
алг
нач
цел f, line, word, char, in, i
лит s
line := 0
word := 0
char := 0
f := открыть на чтение («текст.txt»)
нц пока не конец файла (f)
Фввод f, s
line := line + 1
вывод s, нс
char := char + длин(s)
in := 0
нц для i от 1 до длин(s)
если s[i] <> » » и in = 0 то
word := word + 1
in := 1
иначе
если s[i] = » » то in := 0 все
все
кц
кц
закрыть(f)
вывод нс, «строк — «, line, нс
вывод «слов — «, word, нс
вывод «символов — «, char
кон Привет, Мир!
Hello World!
5, 4 …

строк — 3
слов — 7
символов — 32

Здесь считается общее количество слов и символов.

Basic-256

open «text.txt»
ln = 0
while not eof
ln = ln + 1
s$ = readline
i = 1
word = 0
flag = 0
while i <= length(s$)
c$ = mid(s$,i,1)
if c$ <> » » and flag = 0 then
word = word + 1
flag = 1
else
if c$ = » » then flag = 0
endif
i = i + 1
endwhile

print s$ + length(s$) + «, » + word
endwhile
close

print «Строк: » + ln Hello world!
13, 2
Привет мир!
12, 2
One, two, three
16, 3
Один, два, три
15, 3
Строк: 4

Переход на новую строку учитывается как символ.

Did you find apk for android? You can find new Free Android Games and apps.

Добавить комментарий