Задачи на определение информационного объема текста
Проверяется умение оценивать количественные параметры информационных объектов.
Теоретический материал:
N = 2i , где N – мощность алфавита (количество символов в используемом
алфавите),
i – информационный объем одного символа (информационный
вес символа), бит
I = K*i, где I – информационный объем текстового документа (файла),
K – количество символов в тексте
Задача 1.
Считаем количество символов в заданном тексте (перед и после тире – пробел, после знаков препинания, кроме последнего – пробел, пробел – это тоже символ). В результате получаем – 52 символа в тексте.
Дано:
i = 16 бит
K = 52
I – ?
Решение:
I = K*i
I = 52*16бит = 832бит (такой ответ есть – 2)
Ответ: 2
Задача 2.
Дано:
K = 16*35*64 – количество символов в статье
i = 8 бит
I – ?
Решение: Чтобы перевести ответ в Кбайты нужно разделить результат на 8 и на 1024 (8=23, 1024=210)
I=16*35*64*8 бит==35Кбайт Ответ: 4
Задача 3.
Пусть x – это количество строк на каждой странице, тогда K=10*x*64 – количество символов в тексте рассказа.
Дано:
I = 15 Кбайт
K =10*x*64
i = 2 байта
x – ?
Решение:
Переведем информационный объем текста из Кбайт в байты.
I = 15 Кбайт = 15*1024 байт (не перемножаем)
Подставим все данные в формулу для измерения количества информации в тексте.
I = K*i
15*1024 = 10*x*64*2
Выразим из полученного выражения x
x = – количество строк на каждой странице – 4
Ответ: 4
Задачи для самостоятельного решения:
Задача 1.
Задача 2.
Задача 3.
Задача 4.
Задача 5.
Задача 6.
Задача 7.
Задачи взяты с сайта fipi.ru из открытого банка заданий (с.1-7)
Для решение этого класса задач необходимо знать как кодируется текст.
Рассмотрим решение задачи 1 части 1 демоверсии ГИА по информатике 2013 года:
Статья, набранная на компьютере, содержит 16 страниц, на каждой странице 30 строк, в каждой строке 32 символа. Определите информационный объём статьи в одной из кодировок Unicode, в которой каждый символ кодируется 16 битами.
1) 24 Кбайт 2) 30 Кбайт 3) 480 байт 4) 240 байт
Решение:
Найдем общее количество символов на одной странице, для этого умножим количество строк на странице на количество символов в строке — 30 * 32 = 960 символов.
Найдем общее количество символов во всем тексте, для этого умножим количество страниц на количество символов на одной странице — 16 * 960 = 15360 символов.
Так как каждый символ кодируется 16 битами, а 16 бит = 2 байта, то весь текст займет 15360 * 2 байта = 30720 байта. Как видим, из предложенных вариантов ответа в байтах полученного нами нет, поэтому переведем полученный результат в килобайты. Для этого разделим 30720 на 1024: 30720 / 1024 = 30Кбайт.
Правильный ответ 2) 30Кбайт.
Второй вариант решения задачи предполагает знание степеней двойки и единиц измерения информации.
Итак, количество символов во всем тексте, учитывая, что 32 = 25 , а 16 = 24 будет равно
30 * 32 * 16 = 30 * 25 * 24 = 30 * 29 символов.
Так как каждый символ занимает 2 байта, то для всего текста потребуется
30 * 29 * 2 = 30 * 210 байт.
А так как 210 байт это 1Кбайт, то в итоге получим 30Кбайт.
Рассмотрим решение задачи 1 части 1 демоверсии ГИА по информатике 2012 года:
Статья, набранная на компьютере, содержит 8 страниц, на каждой странице 40 строк, в каждой строке 64 символа. В одном из представлений Unicode каждый символ кодируется 16 битами. Определите информационный объём статьи в этом варианте представления Unicode.
1) 320 байт 2) 35 Кбайт 3) 640 байт 4) 40 Кбайт
Решение:
Аналогично предыдущей задаче найдем количество символов на одной странице — 40 * 64 = 2560.
Общее количество символов в статье — 2560 * 8 = 20480 символов.
Каждый символ кодируется 16 битами или 2 байтами (1 байт = 8 бит). Значит вся статья займет 20480 * 2 байта = 40960 байт.
Полученного результата в вариантах ответа нет, поэтому переведем полученное значение в килобайты, разделив его на 1024: 40960 / 1024 = 40Кбайт.
Правильный ответ 4) 40 Кбайт.
Рассмотрим решение задачи 1 части 1 демоверсии ГИА по информатике 2011 года:
В кодировке КОИ-8 каждый символ кодируется одним байтом. Определите количество символов в сообщении, если информационный объем сообщения в этой кодировке равен 160 бит.
1) 10 2) 16 3) 20 4) 160
Решение:
Так как каждый символ кодируется одним байтом, а один байт равен 8 битам, то чтобы узнать количество символов, нужно разделить информационный объем сообщения на количество памяти, занимаемое одним символом:
160 / 8 = 20 символов.
Правильный ответ 3) 20.
Дополнение (ГИА 2014)
Продолжаем готовиться к ГИА по информатике и рассмотрим новые задачи ГИА 2014 по информатике.
В одной из кодировок Unicode каждый символ кодируется 16 битами. Определите размер следующего предложения в данной кодировке.
Я к вам пишу – чего же боле? Что я могу ещё сказать?
1) 52 байт 2) 832 бит 3) 416 байт 4)104 бит
Решение:
Для начала посчитаем количество символов в предложении. Именно символов, не букв! То есть знак пробела, знак вопроса мы тоже считаем. В итоге у нас получается 52 символа. Из условия известно, что каждый символ кодируется 16 битами. Значит, чтобы найти информационный объем всего предложения, мы должны умножить 52 на 16.
52 * 16 = 832 бита.
Среди вариантов ответа есть найденный нами. Правильный ответ 2.
Рассмотрим еще одну похожую задачу — на этот раз из диагностической работы ГИА по информатике 2014 от 18 октября 2013 года.
В одной из кодировок Unicode каждый символ кодируется 16 битами. Определите информационный объем следующего предложения в данной кодировке.
Я памятник себе воздвиг нерукотворный.
1) 76 бит 2) 608 бит 3) 38 байт 4) 544 бит
Принцип решения подобного класса задач остается прежним — посчитать количество символов и умножить полученное число на информационный объем одного символа. В условии сказано, что каждый символ кодируется 16 битам (рекомендую ознакомиться со статьей кодирование текста для понимания принципов хранения текста в памяти компьютера). Итак, считаем количество символов в строке. Напомню очередной раз, что пробелы, знаки препинания — это тоже символы и их тоже надо считать. В предложении 38 символов. Умножив 38 символов на 16 бит получим 608 бит. В предложенных вариантах такой встречается, значит правильный ответ — 2
Рассмотрим решение задачи 1 Диагностической работы в формате ГИА по информатике 19 декабря 2013 года 9 класс Вариант ИНФ90301:
Текст рассказа набран на компьютере. Информационный объём получившегося файла 15 Кбайт. Текст занимает 10 страниц, на каждой странице одинаковое количество строк, в каждой строке 64 символа. Все символы представлены в кодировке Unicode. В используемой версии Unicode каждый символ кодируется 2 байтами. Определите, сколько строк помещается на каждой странице.
1) 48 2) 24 3) 32 4) 12
Решение:
15Кбайт = 15 * 210 байт.
Обозначим количество строк X. Тогда во всем тексте будет 10 * 64 * X символов. А если каждый символ занимает 2 байта, то во всем тексте будет 10 * 64 * X * 2 байта. Осталось вспомнить степени двойки и решить простейшее уравнение:
15 * 210 = 10 * 64 * X * 2
15 * 210 = 10 * 26 * X * 2
15 * 210 = 10 * 27 * X
X = 15 * 210 / 10 * 27 = 3 * 23 / 2 = 3 * 22 = 3 * 4 = 12
Ответ: 12 строк — это 4-й вариант.
Автор:
Перейти к содержанию
Посчитать количество строк в файле и количество слов и символов в каждой строке
Просмотров 8.1к. Обновлено 15 октября 2021
В текстовом файле посчитать количество строк, а также для каждой отдельной строки определить количество в ней символов и слов.
Подсчет строк:
Ввести счетчик, присвоить ему 0.
Пока не будет достигнут конец файла, считывать очередную строку файла и увеличивать счетчик на 1.
Подсчет символов в строке:
Измерять длину очередной строки с помощью встроенный в язык программирования функции.
Подсчет слов в строке:
- Ввести счетчик слов и присвоить ему 0.
- Ввести флаговую переменную и присвоить ей 0 (сигнал нахождения вне слова).
- Пока не будет достигнут конец строки:
- Если очередной символ не пробел и флаг указывает на нахождение вне слова, то увеличить счетчик слов и присвоить флаговой переменной 1 (сигнал нахождения внутри слова).
- Если же очередной символ пробел, то присвоить флагу 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
python количество строк в файле
f = open('text.txt')
line = 0
for i in f:
line += 1flag = 0
word = 0
for j in i:
if j != ' ' and flag == 0:
word += 1
flag = 1
elif j == ' ':
flag = 0print(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
endwhileprint s$ + length(s$) + ", " + word
endwhile
closeprint "Строк: " + ln
Hello world!
13, 2
Привет мир!
12, 2
One, two, three
16, 3
Один, два, три
15, 3
Строк: 4
Переход на новую строку учитывается как символ.
Каждый объект в компьютере (или любом другом электронном устройстве) имеет свой информационный объём, то есть то количество информации, которое он занимает в памяти устройства.
Например, текстовый документ на (2)–(3) страницы может иметь информационный объём (150) Кб.
Изображение в хорошем качестве — (2)–(4) Мб.
Аудиофайл с песней на (3) минуты — около (6) Мб.
Рассмотрим измерение текстовой информации в компьютере.
Размер текстового сообщения зависит от того, с помощью какого алфавита он был написан и сколько в нём символов.
Алфавит (N) — это количество символов в некотором языке.
Чем больше алфавит, тем больше информационный вес одного символа.
Информационный вес одного символа (i) — это количество информации, которое отводится на один символ.
Обрати внимание!
Они связаны формулой:
N=2i
.
Например, в русском алфавите (33) буквы, вычислим информационный вес одного символа по формуле:
33=2i,i≈5
бит. То есть вес одного символа (буквы) — (5) бит.
Представим, что в тетрадке записана следующая строка: «Мама сидела за столом».
Как посчитать, сколько информации несёт в себе это сообщение?
Нам известно, сколько весит один символ — (5) бит, можно подсчитать количество символов в данном сообщении — (18), соответственно, чтобы найти, сколько всего информации несёт в себе это сообщение, нужно перемножить информационный вес одного символа и количество символов в сообщении.
Обрати внимание!
Можно вывести формулу:
I=K×i
,
где (I) — информационный объём сообщения;
(K) — количество символов в сообщении;
(i) — информационный вес одного символа.
Но мы будем работать с компьютерным текстом. Там алфавит намного больше.
Как ты думаешь, сколько всего символов можно ввести с клавиатуры?
Ты скажешь «много» и будешь прав: с клавиатуры можно ввести русские/английские буквы, цифры, специальные знаки и т. д. Всего (256) символов.
Посчитаем информационный вес одного символа компьютерного алфавита.
N=2i.256=2i.256=28.
Один символ компьютерного алфавита весит (8) бит или (1) байт.
Решим задачу.
Найди информационный объём текста (в битах), написанного с помощью компьютера:
«Информация — это сведения об окружающем нас мире».
Текст напечатан на компьютере, поэтому один символ весит (8) бит или (1) байт.
Всего символов в сообщении между кавычками: (48). При подсчёте символов учитываются все символы и пробелы.
Запишем решение:
I=K×i.I=48×8.I=384бит.
Ответ: (384) бита.
Задача
Найди информационный объём сообщения (в байтах), который напечатали школьники на уроке информатики, если оно содержит (2) страницы, на каждой странице по (12) строк, и в каждой строке (28) символов.
Оформим решение задачи.
Дано: K=2×12×28.i=1байт. |
Чтобы посчитать, сколько символов всего в сообщении, нужно умножить количество страниц на количество строк и на количество символов в каждой строке. В условии сказано, что текст напечатали, поэтому один символ равен (1) байту. I=K×i.I=2×12×28×1.I=672байта. |
Найти: (I) — ? | Ответ: (672) байта. |
Как подсчитать количество строк
Если оставить в стороне программирование, то задача подсчета строк наиболее часто возникает при работе с текстами и таблицами. Самое распространенное на сегодня программное обеспечение для работы с документами этого рода – текстовый процессор Word и табличный редактор Excel из состава пакета офисных приложений Microsoft Office. Ниже приведены способы подсчета количества строк с использованием этих двух приложений.
Инструкция
Запустите Microsoft Word и загрузите в него текстовый документ, строки которого надо пересчитать. Диалог открытия файла здесь, как и в большинстве программ, можно вызвать сочетанием «горячих клавиш» Ctrl + O либо через меню приложения, открываемого щелчком по большой круглой кнопке в левом верхнем углу окна.
Перейдите на вкладку «Рецензирование» меню текстового процессора и щелкните по пиктограмме, на которой изображены буквы ABC и цифры 123 – эта кнопка открывает небольшое окошко с подробной статистикой, относящейся к загруженному тексту. В нижнюю строку этого окна помещена и информация о количестве строк. Есть более простой способ вызвать на экран окно статистики – достаточно щелкнуть левой кнопкой мыши надпись «Число слов» в левой нижней части окна (в строке состояния).
Обратите внимание на тот факт, что этот параметр зависит от того, сколько знаков можно уместить в каждой строке. Это значит, что изменяя размер шрифта или величину отступов от краев страницы в процессе подготовки текста к печати, вы будете менять и количество строк. Если вам важно контролировать число строк в напечатанном документе, то не забудьте проверить его непосредственно перед отправкой документа на принтер или перед сохранением в файл.
Запустите табличный процессор Microsoft Excel и загрузите в него таблицу, строки которой требуется пересчитать. Кроме собственных форматов Excel, таблицы можно загружать и из csv-файлов, а можно переносить их из других документов через буфер обмена.
Если требуется просто узнать количество строк в таблице, то достаточно установить курсор ввода в ее последнюю строку и посмотреть номер в заголовке строки слева от таблицы. Для быстрого перехода к последней строке можно воспользоваться сочетанием клавиш Ctrl + End.
Если надо пересчитать строки, удовлетворяющие каким-либо условиям, то воспользуйтесь встроенными функциями СЧЁТ, СЧЁТЗ, СЧЁТЕСЛИ, СЧЁТЕСЛИМН. Например, пусть требуется определить количество строк, у которых в первой ячейке содержится какое либо не пустое значение. В этом случае перейдите в свободную ячейку, в которой хотите видеть результат подсчета, введите =СЧЁТЗ(A:A) и нажмите Enter.
Войти на сайт
или
Забыли пароль?
Еще не зарегистрированы?
This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.