S - Заданная символьная строка s2 - Заданное слово Идея проста: мы проходим по заданной строке и копируем подстроку, начиная с символа i, с количеством символов, равным количеством символов заданного слова. Например: Символьная строка: 34строка3254строка Заданное слово: строка Мы просто берём и проходим циклом 34строка3254строка 34строка3254строка 34строка3254строка ... и т.д. до самого конца. Если рассматриваемая нами подстрока равна заданному слову, то мы увеличиваем счётчик k на 1, после завершения цикла мы просто возвращаем значение нашего счётчика - количество вхождений заданного слова в строку. P.S. Мы идём циклом не от 1 до length(s), а от 1 + l1 - l2. К примеру в нашей строке нет смысла рассматривать подстроку, начиная отсюда 34строка3254строка т.к. символов в ней явно меньше чем в самом заданном слове, следовательно, дальше оно нам уже не попадётся:) Исходный код в приложении.
Var m,n,i,j,max,min,imx,imn,jmn,jmx,k,p:integer; s:real; a:array[,]of integer; begin write('Число строк: '); readln(m); write('Число столбцов: '); readln(n); setlength(a,m+1,n+1); for i:=1 to m do begin writeln('Вводите элементы строки ',i,' по одному'); for j:=1 to n do readln(a[i,j]); end; min:=a[1,1]; max:=a[1,1]; imn:=1; jmn:=1; imx:=1; jmx:=1; for i:=1 to m do for j:=1 to n do begin if a[i,j]<min then begin min:=a[i,j]; imn:=i; jmn:=j; end; if a[i,j]>max then begin max:=a[i,j]; imx:=i; jmx:=j; end; end; p:=a[imn,jmn]; a[imn,jmn]:=a[imx,jmx]; a[imx,jmx]:=p; writeln('Измененный массив:'); for i:=1 to m do begin for j:=1 to n do write(a[i,j]:5); writeln; end; write('Введите номер строки: '); readln(i); for j:=1 to n do if a[i,j]<0 then begin s:=s+a[i,j]; k:=k+1; end; writeln('Ср.ариф. отр.чисел в строке: ',s/k); end.
Для всех заданий воспользуемся формулой N=2^i? где N -количество цветов, а i -количество бит на 1 пиксель. Задача 1. N=2^4=16 цветов.
Задача 2. N=224=2^i, поскольку для кодирования 128 цветов необходимо 7 бит, а для кодирования 256 цветов -8 бит, выбираем большее число, то есть 8 бит или 1 байт.
Задача 3. 65536 это 2^16⇒требуется 16 бит или 2 байта.
Задача 4. 1. Узнаем общее количество пикселей 1280*1024=1310720 2. Полученное число умножаем на глубину цвета 1310720*32=41943040 бит = 41943040/8 = 5242880 байт = 5242880/1024 = 5120 кб =5120/1024 = 5 Мб ответ: 5 Мб
s2 - Заданное слово
Идея проста: мы проходим по заданной строке и копируем подстроку, начиная с символа i, с количеством символов, равным количеством символов заданного слова. Например:
Символьная строка:
34строка3254строка
Заданное слово:
строка
Мы просто берём и проходим циклом
34строка3254строка
34строка3254строка
34строка3254строка
...
и т.д. до самого конца. Если рассматриваемая нами подстрока равна заданному слову, то мы увеличиваем счётчик k на 1, после завершения цикла мы просто возвращаем значение нашего счётчика - количество вхождений заданного слова в строку.
P.S. Мы идём циклом не от 1 до length(s), а от 1 + l1 - l2. К примеру в нашей строке
нет смысла рассматривать подстроку, начиная отсюда
34строка3254строка
т.к. символов в ней явно меньше чем в самом заданном слове, следовательно, дальше оно нам уже не попадётся:)
Исходный код в приложении.