//Pascal
//Для натуральных чисел
var a, s, p:integer;
begin
write('Введите число = ');
readln(a);
s := 0;
p := 1;
while (a<>0) do
begin
p := p * (a mod 10);
s := s + (a mod 10);
a := a div 10;
end;
writeln( 'Сумма цифр числа = ', s);
writeln( 'Произведение цифр числа = ', p);
end.
//Если число отрицательное
var
s, p, a, b, c: integer;
f: boolean;
begin
write('Введите число = ');
readln(a);
if a < 0 then
f := true;
a := abs(a);
b := a mod 10;
a := a div 10;
c := a mod 10;
a := a div 10;
if f = true then
begin
p := (-a) * b * c;
s := -a + b + c;
end
else
begin
s := a + b + c;
p := a * b * c;
end;
writeln('Сумма цифр числа = ', s);
writeln('Произведение цифр числа = ', p);
end.
1-ложь
2-истина
3-ложь
4-истина
5-истина
6-ложь
7-истина
8-ложь
9-истина
Миша разрабатывает сайты -> пользуется HTML (и это не язык программирования, а язык разметки! Косяк авторов задачи)
Лена пишет макросы -> Visual Basic for Applications
Остались Prolog (язык логического программирования) и Pascal (структурного). Таня не умеет работать с Паскалем, значит, знает Пролог. А Серёже остается Паскаль.
Добрый день!
И так, начнём..
*Вопрос: <span><span>Изменится ли строка ST, над которой произведут операцию COPY? Почему?
</span>*Ответ: <u>Изменится</u>, т.к. при использовании функции <span>COPY </span>необходимо указывать в какой строке копировать, с какой позиции, и количество символов, которое будет копировано.
**Вопрос: </span><span>Чему будет равняться k после операции k:=length(‘мышь и клавиатура’)?
**Ответ: Переменная k будет равна <u>17</u>, т.к. функция LENGTH определяет длину строки, считая каждый пробел, запятую, буквы и т.д.
***Вопрос: </span><span>Чему будет равняться переменная tx после операции tx:=‘лесник’; delete(tx,4,3)?
***Ответ: Переменная tx будет равна слову <u>лес</u>. </span><span>Функция </span>DELETE<span> удаляет часть символов из строки. В нашем случае удаление происходит в строке tx, с позиции 4, удаляет 3 символа.
****Вопрос: </span><span>Чему будет равняться переменная k после операции tx:=‘баобаб’; k:=pos(‘ба’,tx)?
****Ответ: Переменная k будет равна <u>1</u>. Т.к. функция POS определяет первое вхождение заданного символа.
Дополненная программа:
program zadacha1;
var t: string; b: string[1]; n, k, i: integer;
begin
writeln('Введите текст: ');
<em>readln(t);</em>
n := length(t);
k := 0;
for i := 1 to n do begin
b := copy(t, i, 1);
<em>if (t[i] = 'a') or (t[i] = 'A') or (t[i] = 'а') or (t[i] = 'А')</em> then k := k + 1;
end;
writeln ('k= ', k);
<span>end.
</span></span><span><span>
*<em>Курсивом и выделением обозначены дополнения в программе.</em></span></span>
Вариант III.
В F можно попасть непосредственно из А или из Е.
Путь А-Е имеет длину 5. Осталось найти путь, если он есть, из А в Е с длиной не более 5-1-1=3. Почему столько? одна единица - это путь E-F, а вторая - это чтобы путь был короче A-F=5.
Как попасть в Е? Можно из А (длина 5 и это много) или D (длина 1).
Поищем вариант A-D диной не более 3-1=2. И он есть, и именно 2.
Поэтому кратчайший путь - это A-D-E-F с длиной 2+1+1=4
Вариант IV.
В F ведут пути из B, C, D ,Е. Это много. Посмотрим тогда куда можно попасть из А.
А-С длина 2, A-D длина 1.
D-F имеет длину 4 и путь A-F длины 4+1=5 мы уже нашли. Нет ли короче, хотя бы 4?
Вернемся к F. Чтобы получить путь не больше 4, из F должен быть путь в D не более 3 или в С не более 2. Таких путей нет., следовательно кратчайший путь A-D-F длины 1+4=5