Задания школьного тура олимпиады по информатике в 9 – 10 – 11 классе 2010 – 2011 учебный год Задача №1. Найти наибольшее целое число из четырех введенных с клавиатуры. Решение задачи №1
Program n1; Uses Crt; var x,y,z,w:integer; begin writeln('Введите четыре целых числа'); write('x=');readln(x); write('y=');readln(y); write('z=');readln(z); write('w=');readln(w); if x < y then x := y; if x < z then x := z; if x < w then x := w; writeln('Максимальное число = ', x); end.
Задача №2. Написать программу, которая будет менять местами два введенных с клавиатуры слова. Слова разделены пробелом.
Тест. Введено «Иван Петров», результат «Петров Иван». Решение задачи №2. Решение, предложенное авторами олимпиады.
Program n2; Uses Crt; var str, str2:string; i:integer; begin writeln('Введите строку символов'); readln(str); for i := 1 to length(str) do if str[i] = ' ' then begin str2 := copy(str,1,i-1); delete(str,1,i); end; writeln('Итоговая строка - ',str + ' '+ str2); readln; end.
Мой вариант
Program n2; Uses Crt; var str,str1, str2:string; i:integer; begin write('Введите строку символов');readln(str); i:=1; while str[i]<>' ' do i:=i+1; str1:=copy(str,1,i); str2:=copy(str,i,length(str)); writeln('Итоговая строка - ',str2 + ' '+ str1); readln; end.
Задача №3. Подсчитайте, сколько слов во введенном предложении начинается с буквы «w» . Решение задачи №3 Program n3; Uses Crt; var str:string; x ,i:integer; begin writeln('Введите предложение'); readln(str); x:=0; for i:=1 to length(str) do if (str[i]=' ') and (str[i+1]= 'w')then x:=x+1; if str[1]='w' then x:=x+1; writeln(‘Количество слов в предложении начинающихся буквой «w» = ‘ , x); end.
Задача №4. В массиве А[1..n], состоящем из целых чисел, найдите самую длинную последовательность идущих подряд нулей. Укажите начало и конец. Решение задачи №4
program n5; uses crt; var a:array [1..10]of integer; i,lmax,l,flag,nac,max_nac,con,max_con:integer; begin writeln('Введите элементы массива :) ; for i:=1 to 10 do read (a[i]) ; for i:=1 to 10 do write (a[i],' ' ); writeln; lmax:=0; l:=1; flag:=0; nac:=0; con:=0; if a[1]=0 then nac:=1; for i:=1 to 9 do begin if (a[i+1]<>0) and (a[i]=0)then con:=i; if (a[i]=a[i+1]) and (a[i]=0) then begin if i>=2 then if (a[i-1]<>0) and (a[i]=0) then nac:=i; l:=l+1; flag:=1; end else begin if l>lmax then begin lmax:=l; max_nac:=nac; max_con:=con; end; l:=1; end; end; if l>lmax then begin lmax:=l; max_nac:=nac; max_con:=i+1; end;
if flag=0 then writeln('0-нет') else begin writeln('самая длинная последовательность 0 =',lmax); writeln('начало 0 =',max_nac); writeln('конец 0 =',max_con); end;
end.
|