1. дано целое число, лежащее в интервале от 1 до 1000000. найти все цифры данного числа, переставить их наоборот, уменьшить его в три раза. в полученном числе найти первую и последнюю цифры.
var a,n,k: integer; begin read(a); n := a; {чтобы не трогать исходные данные} k := 0; while n > 0 do begin k := k*10 + n mod 10; n := n div 10 end; {теперь в k содержится перевернутое число} k := k div 3; {уменьшенное в 3 раза} n := 1; while n*10 < k do n := n * 10; writeln(k div n,' ',k mod 10); {первая и последняя цифры} end.
Языки второго поколения (2GL) создавались для того, чтобы облегчить тяжёлую работу по программированию, перейдя в выражениях языка от низкоуровневых машинных понятий ближе к тому, как обычно мыслит программист. Эти языки появились в 1950-е годы, в частности, такие языки как Фортран и Алгол. Наиболее важной проблемой, с которыми столкнулись разработчики языков второго поколения, стала задача убедить клиентов в том, что созданный компилятором код выполняется достаточно хорошо, чтобы оправдать отказ от программирования на ассемблере. Скептицизм по поводу возможности создания эффективных программ с автоматических компиляторов был довольно распространён, поэтому разработчикам таких систем должны были продемонстрировать, что они действительно могут генерировать почти такой же эффективный код, как и при ручном кодировании, причём практически для любой исходной задачи.
// PascalABC.NET 3.2, сборка 1467 от 02.06.2017 // Внимание! Если программа не работает, обновите версию!
begin var sg:=['а','е','и','о','у','ы','э','ю','я']; var a:=ReadlnString('Вводите текст: ').ToWords(',','.'); var r:set of char=[]; for var i:=0 to a.Length-1 do begin var b:=a[i].Where(c->c in sg).GroupBy(t->t).Select(t->(t.Key,t.Count)); foreach var t in b do if t[1]>2 then r+=[t[0]]; end; var s:=''; foreach var c in r do s+=c; s.OrderBy(t->t).Println(',') end.
Пример Вводите текст: Дает,корова,молоко,а,жираф,это,длинношеее,животное. е,о
var a,n,k: integer;
begin
read(a);
n := a; {чтобы не трогать исходные данные}
k := 0;
while n > 0 do
begin
k := k*10 + n mod 10;
n := n div 10
end;
{теперь в k содержится перевернутое число}
k := k div 3; {уменьшенное в 3 раза}
n := 1;
while n*10 < k do
n := n * 10;
writeln(k div n,' ',k mod 10); {первая и последняя цифры}
end.