Ответы и решения 5-7 классы 1. Клавиатура, джойстик, сканер, принтер. Принтер - устройство для вывода данных, всё остальное - устройства ввода. Телефон, модем, телефакс, память. Память - устройство хранения данных, всё остальное устройства передачи. Перфолента, дискета, перфокарта, монитор. Монитор - устройство вывода данных, всё остальное - носители информации. 2. … 13, 9 Чередующиеся через одно числа последовательность ряда 16,15, 14, 13, а следующее за ним - меньше на 4 с, в (С емь, В осемь) Первая буква в названии цифры … 91, 152 2 числа складываем, получаем ещё одно. Цифры полученного складываем между собой, затем прибавляем полученную сумму к самому числу и получаем следующее, идущее по порядку в последовательности, число. Сначала взяли цифру "5". Это - точка отсчёта. Прибавлять к ней нечего, чтобы получить следующее число, поэтому следующим числом будет цифра, идущая по классической последовательности "предыдущее число + 1", т.е. цифра "6". Вот здесь уже, чтобы получить следующее число, надо к 5 прибавить 6: 5 + 6 = 11 Цифры полученного числа сложить: 1 + 1 = 2 И прибавить эту сумму к полученному числу: 11 + 2 = 13 Получили следующее число последовательности. С остальными аналогично: 6 + 13 = 19 1 + 9 = 10 19 + 10 = 29 13 + 29 = 42 4+2=6 42 + 6 = 48 29 + 48 = 77 7 + 7 = 14 77 + 14 = 91 48 + 91 = 139 1 + 3 + 9 = 13 139 + 13 = 152 3. 1) для первой буквы возможно три варианта (А, Е, И); 2) в каждом из трех этих вариантов второй карточкой можно поставить карточку с любой из трех согласных букв (тогда всего будет 9 вариантов); 3) для третьей карточки в каждом случае имеется два варианта, так как одна гласная уже использована (тогда общее число вариантов цепочек из трех карточек — 9 × 2 = 18); 4) для четвертой карточки в каждом случае имеется два варианта, так как одна согласная уже использована (тогда общее число вариантов цепочек из четырех карточек — 18 × 2 = 36); 5) для пятой и шестой карточек возможны единственные варианты (после любой гласной буквы должна стоять единственная оставшаяся согласная, а после любой согласной — единственная оставшаяся гласная). Следовательно, общее количество вариантов не изменится. Ответ: всего существует 36 таких цепочек. 4. Разрезаем веревку на две части 25 и 50 метров. 25-ти метровую веревку одним концом привязываем к верхнему дереву, а на другом конце делаем узел с маленькой петлей, через которую до половины пропускаем 50-ти метровую веревку и слаживаем ее вдвое. По этим двум веревкам (одинарной 25-ти метровой и сложенной пополам 50-ти метровой) спускаемся на нижнее дерево, и за один конец вытягиваем из петли 50-ти метровую веревку, перевязываемся и спускаемся по ней на землю. 5. Ответ: Влад — юрист и регбист, Тимур — врач и турист, Юра — физик и бегун. 6. Хакер, Драйвер, Алгоритм 7. Заполняем водой из реки 9-ти литровое и переливаем из него воду в 5-ти литровое (в 9-ти литровом остается 4 литра). Освобождаем 5-ти литровое ведро и переливаем в него 4 литра из 9-ти литрового. Еще раз заполняем водой из реки 9-ти литровое и из него доливаем в 5-ти литровое 1 литр воды (в 9-ти литровом остается 8 литров). Освобождаем 5-ти литровое и переливаем в него из 9-ти литрового 5 литра воды. В 9-ти литровом ведре останется 3 литра воды. 8. 2, 4 8-9 классы 1. 2. 3. 4. 5. Ответ:CADB Ответ: 6,8,8 Ответ: 5 Ответ: 13 Ответ: 6 6. Один из вариантов реализации решения задачи (на языке программирования Паскаль) program p6; {Вычислить в какой коорд. четверти расположен треуг. образованный осями коорд. и прямой y=kx+b } uses crt; var k,b:longint;x,y:real; begin write(' введите коэф. k=');readln(k); write(' введите коэф. b=');readln(b); y:=b;x:=-b/k; if (x>0)and(y>0) then begin write(' 1-ая четверть');readln;halt; end; if (x<0)and(y>0) then begin write(' 2-ая четверть');readln;halt; end; if (x<0)and(y<0) then begin write(' 3-ая четверть');readln;halt; end; if (x>0)and(y<0) then begin write(' 4-ая четверть');readln;halt; end; end. 7. Один из вариантов реализации решения задачи (на языке программирования Паскаль) program p7; var a:array[1..10,1..10] of real; s1,s2:real;i,j,k,n:integer; begin write('введите кол.строк и столб.='); readln(n); for i:=1 to n do for j:=1 to n do begin write('a[',i,',',j,']='); readln(a[i,j]); end; s1:=0;s2:=0; for k:=1 to n do begin s1:=s1+a[k,k]; s2:=s2+a[k,n+1-k]; end; write('s1=',s1); writeln(' s2=',s2); end. 8. Один из вариантов реализации решения задачи (на языке программирования Паскаль) program p8; uses crt; var kol_vo,i,n,f : longint; begin clrscr; write('N=');readln(n); if n>=20 then halt; f:=1; for i:=1 to n do f:=f*i; for i:=1 to f do if f mod i=0 then begin inc(kol_vo);write(i,' ') end; writeln; write('Кол-во различных делителей числа N!=',f,' : ',kol_vo); readln; end. 10-11 классы 1. Ответ:545 2. Ответ: 44 3. Ответ: 85 4. Ответ: 1, 3 5. Один из вариантов реализации решения задачи (на языке программирования Паскаль) program p6; { Уплотнить линейный массив удалив нули и сдвинув влево остальные элм.} var m,i,k:longint; a:array[1..100]of longint; begin write('введите кол-во элементов таблицы: ');readln(k); for i:=1 to k do begin write('a[',i,']=');readln(a[i]); end; m:=0; for i:=1 to k do if a[i]=0 then inc(m) else a[i-m]:=a[i];k:=k-m; for i:=1 to k do write(a[i],' '); end. 6 Один из вариантов реализации решения задачи (на языке программирования Паскаль) program p6; var s:string; slovo,st,st1:string; i,k,k1:byte; Begin writeln('Введите предложение'); readln(s); if s='' then begin writeln('нет текста'); exit; end; s:=s+' '; k:=0; st:=''; k1:=255; st1:=''; for i:=1 to length(s) do if not(s[i] in [' ',',','.','?','!']) then slovo:=slovo+s[i] else begin if length(slovo)>k then begin k:=length(slovo); st:=slovo; end; if length(slovo)<k1 then begin k1:=length(slovo); st1:=slovo; end; slovo:=''; end; if length(st)<>0 then begin writeln('Длинное слово в тексте:',st,' длина=',length(st)); writeln('Короткое слово в тексте:',st1,' длина=',length(st1)); end; End. 7.Один из вариантов реализации решения задачи (на языке программирования Паскаль) (****************************************** Программа выясняет, сколько дней прошло между двумя датами. Исходная дата представлена так: type TDate = record day: [1..31]; month: [1..12]; year: word; end; Високосные годы учитываются. ******************************************) program Date2; type TDate = record day: 1..31; month: 1..12; year: word; end; var srcdate, curdate: TDate; (*---------------------------------------Функция проверяет, является ли год високосным ----------------------------------------*) function VisokosnyGod (n: integer): boolean; begin if (((n mod 400)=0) or (((n mod 4)=0) and ((n mod 100) <> 0))) then VisokosnyGod := TRUE else VisokosnyGod := FALSE; end; (*---------------------------------------Функция проверяет, правильно ли задан день в зависимости от месяца и года ----------------------------------------*) function CheckDayOfMonth (day, month, year: integer): boolean; begin if ((day>30)and(month in [2,4,6,9,11])) or ((day>29)and(month=2)) or ((day>28)and(month=2)and(not VisokosnyGod(year))) then CheckDayOfMonth:=false else CheckDayOfMonth:=true; end; (*---------------------------------------Процедура ввода даты с защитой ----------------------------------------*) procedure EnterDate (var d: TDate); var n: integer; dayOk: boolean; begin write('Год: '); readln(d.year); repeat write('Месяц (1..12): '); readln(n); if (n<1)or(n>12) then writeln('Ошибка! Номер месяца должен находиться в диапазоне 1..12'); until (n>0)and(n<13); d.month:=n; repeat dayOk:=true; write('День (1..31): '); readln(n); if (n<1)or(n>31)or(not CheckDayOfMonth(n, d.month, d.year)) then begin writeln('Ошибка! День не может иметь такое значение для выбранных '+ 'года и месяца. Выберите другой день'); dayOk:=false; end; until dayOk; d.day:=n; end; (*---------------------------------------Функция возвращает количество дней от начала эры до указанной даты ----------------------------------------*) function DaysFromZero (d, m, y: integer): longint; begin if m>2 then m := m+1 else begin m := m+13; y := y-1; end; DaysFromZero := trunc(36525*y/100+306*m/10+d); end; begin writeln('Программа возвращает количество дней между заданной '+ 'датой и текущей'); writeln('Введите сегодняшнее число'); EnterDate(curdate); writeln('Введите интересующую вас дату'); EnterDate(srcdate); writeln('Заданная дата: ',srcdate.day,'.',srcdate.month,'.',srcdate.year); writeln('Сегоднящняя дата: ',curdate.day,'.',curdate.month,'.',curdate.year); writeln('Количество дней между этими датами = ', abs(DaysFromZero(curdate.day, curdate.month, curdate.year)DaysFromZero(srcdate.day, srcdate.month, srcdate.year))); end.