Program asdf; var a,i.b: integer; s: string; begin readln(a); s: =inttostr(a); a: =length(s); b: =0; for i: =1 to a do b: =b+s[i]; writeln(b); if s[1]=s[a] then writeln('равны') else writeln('неравны'); end.
Margarita
15.07.2021
Поставленную можно решать разными способами. можно озаботиться красотой алгоритма, можно - эффективностью выполнения программы, можно еще много чем. в связи с тем, что в настоящее время компьютеры большой вычислительной мощностью, а проста, выберем алгоритм, который имеет минимальную трудоемкость в написании и понятен внешне, хотя, быть может, в чем-то не совсем оптимален с точки зрения вычислительного процесса. речь идет об использовании встроенной функции языка паскаль - функции pos. конечно, использование функции posex, появившейся в pascal.abc, было бы эффективнее, но будем придерживаться классической версии. функция pos позволяет найти позицию первого от начала строки вхождения в эту строку подстроки. если вхождения нет - функция возвращает ноль. принимая оставшуюся после найденного вхождения часть строки за новую строку и повторяя поиск, можно найти все вхождения. не говорит, как организован ввод текста. дело в том, что в паскале строка не может содержать переход к новой строке, а текст задан двумя строками. можно организовать ввод двух строк, можно задать текст строковыми константами, можно организовать ввод из файла. считая, что смысл в поиске вхождений, принимаем способ текста несущественным и задаем текст двумя строковыми константами. это потребует выполнения алгоритма для каждой строки, следоватеьно, нам потребуется пользовательская функция, к которой мы будем обращаться. const c1='не давши слово-крепись,'; c2='а давши - держись'; cc='давши'; { искомый контекст } function kol(c,ci: string): integer; {количество вхождений ci а c } var p,k,l,li: integer; begin k: =0; li: =length(ci); l: =length(c); repeat p: =pos(ci,c); if p> 0 then begin l: =length(c); inc(k); if p+li< l then c: =copy(c,p+li,l-(p+li-1)) end until (p=0) or (p+li> =l); kol: =k end; begin writeln('количество вхождений равно ',kol(c1,cc)+kol(c2,cc)) end. вывод решения: количество вхождений равно 2
gilmore886173
15.07.2021
Const n = 10; var x: array[1..n] of integer; i, k: integer; begin randomize; writeln('элементы массива'); k : = 0; for i : = 1 to n do begin x[i] : = random(51)-25; write(x[i]: 4); if x[i]> 0 then inc(k) end; writeln; writeln('количество положительных элементов массива равно ',k); end. тестовое решение: элементы массива 1 13 -1 0 -25 7 -15 -21 14 9 количество положительных элементов массива равно 5
Ответить на вопрос
Поделитесь своими знаниями, ответьте на вопрос:
Дано натуральное число: − найти сумму цифр этого числа; − верно ли, что число начинается и заканчивается одной и той же цифрой.