VEZZDEXOD73
?>

Дано натуральное число: − найти сумму цифр этого числа; − верно ли, что число начинается и заканчивается одной и той же цифрой.

Информатика

Ответы

Sacharov84
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
Поставленную можно решать разными способами. можно озаботиться красотой алгоритма, можно - эффективностью выполнения программы, можно еще много чем. в связи с тем, что в настоящее время компьютеры большой вычислительной мощностью, а проста, выберем алгоритм, который имеет минимальную трудоемкость в написании и понятен внешне, хотя, быть может, в чем-то не совсем оптимален с точки зрения вычислительного процесса. речь идет об использовании встроенной функции языка паскаль - функции 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
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

Ответить на вопрос

Поделитесь своими знаниями, ответьте на вопрос:

Дано натуральное число: − найти сумму цифр этого числа; − верно ли, что число начинается и заканчивается одной и той же цифрой.
Ваше имя (никнейм)*
Email*
Комментарий*

Популярные вопросы в разделе

perfectorg
АлександровнаВладимирович1424
Николаевич
eidevyatkina
Lazar
Daniil1945
ГармаеваЕкатерина1637
Dmitriy2211104
l250sp70
ivanrancev
Кислинская1055
yrgenson2011801
ilyagenius
galinab1111326
yurazharov