Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

задания с олейник

683 views

Published on

Published in: Education
  • Be the first to comment

  • Be the first to like this

задания с олейник

  1. 1. АЛГОРИТМИЗАЦИЯ и ПРОГРАММИРОВАНИЕ ЗАДАНИЕ «С»
  2. 2. Задачи для самостоятельного программирования (код элемента 2.8.3) Примеры возможных задач (список не является исчерпывающим): <ul><li>Формирование и печать исходного массива (sh-1, sh_2, sh_3). </li></ul><ul><li>Проверка упорядоченности массива ( pr_2). </li></ul><ul><li>Слияние двух упорядоченных массивов (pr_3). </li></ul><ul><li>Сортировка ( pr_4 ) . </li></ul><ul><li>Поиск заданной подстроки (скажем, « abc » в последовательности символов (pr_5). </li></ul><ul><li>Поиск корня делением отрезка пополам ( pr_6 ) . </li></ul><ul><li>Поиск наименьшего делителя целого числа ( pr_7 ) . </li></ul><ul><li>Разложение целого числа на множители (простейший алгоритм) ( pr_8). </li></ul><ul><li>Умножение двух многочленов ( pr _9) . </li></ul>Программы находятся в папке rab_1
  3. 3. Формирование и печать исходного массива с помощью генератора случайных чисел Формирование одномерного массива program sh_1; uses crt; const n=10 ; d=21 ; var a:array [1..n] of integer; i:integer; begin clrscr; { Формирование и печать одномерного массива} randomize; for i:=1 to n do begin a[i]:=-( d div 2)+random( d ); write(a[i]:3); end; writeln; { Обработка одномерного массива} readln; end. Формирование двумерного массива program sh_2; uses crt; const n=6 ; m=3 ; d=21 ; var a:array [1..n,1..m] of integer; i,j:integer; begin clrscr; { Формирование и печать двумерного массива} randomize; for i:=1 to m do begin for j:=1 to n do begin a[i,j]:=-( d div 2)+random( d ); write(a[i,j]:4); end; writeln; end; { Обработка двумерного массива} readln; end.
  4. 4. Проверка упорядоченности массива program pr_2; uses crt; const n=5; var a:array [1..n] of integer; i,f:integer; begin clrscr; for i:=1 to n-1 do read(a[i]); readln(a[n]); clrscr; for i:=1 to n do write(a[i]:3); writeln; { Проверка упорядоченности массива по возрастанию его элементов} f:=0; for i:=1 to n-1 do if a[i]>a[i+1] then f:=1; if f=0 then writeln(' Массив упорядочен') else writeln(' Массив не упорядочен'); writeln(i); readln; end.
  5. 5. Слияние массивов «а» и « b » в массив «с» program pr_3; uses crt; label m1, m2,m3, m4; const n=5; m=4; var a: array [1..n] of integer; b: array [1..m] of integer; c: array [1..100] of integer; i,j,k:integer; begin clrscr; writeln (' Формирование массива а и b '); for i:=1 to n-1 do read(a[i]); readln(a[n]); for i:=1 to m-1 do read(b[i]); readln(b[m]); clrscr; writeln(' Печать массивов а и b'); for i:=1 to n do write(a[i]:3); writeln; for j:=1 to m do write(b[j]:3); writeln; { Слияние массивов а и b в массив с} i:=1; j:=1; k:=1; m3: if a[i]<=b[j] then begin m1: c[k]:=a[i]; i:=i+1; k:=k+1; end else begin m2: c[k]:=b[j]; j:=j+1; k:=k+1; end; if i<=n then begin if i<=m then goto m3 else goto m1; end else begin if j<=m then goto m2 else goto m4; end; m4: writeln(' Песать массива с'); for i:=1 to n+m do write(c[i]:3); writeln; readln; end. i 1 2 3 4 5 а 3 7 8 10 15 j 1 2 3 4 b 4 6 8 16 k 1 2 3 4 5 6 7 8 9 c 3 4 6 7 8 8 10 15 16
  6. 6. Сортировка «Пузырёк» program pr_4; uses crt; label m1; const n=10; d=21; var a:array [1..n] of integer; i,k,r,f:integer; begin clrscr; { Формирование и печать исходного массива} randomize; for i:=1 to n do begin a[i]:=-10+random(d); write(a[i]:4); end; writeln; { Сортировка массива по возрастанию} m1: f:=0; for i:=1 to n-1 do if a[i]>a[i+1] then begin r:=a[i]; a[i]:=a[i+1]; a[i+1]:=r; f:=1; end; if f<>0 then goto m1; { Печать отсортированного массива} for i:=1 to n do write(a[i]:4); readln; end.
  7. 7. Отыскание корня уравнения 2 x-cos(x)=0 делением отрезка пополам x -4 -3,5 -3 -2,5 -2 -1,5 -1 -0,5 0 0,5 1 1,5 2 2,5 3 3,5 4 y -7,35 -6,06 -5,01 -4,20 -3,58 -3,07 -2,54 -1,88 -1,00 0,12 1,46 2,93 4,42 5,80 6,99 7,94 8,65
  8. 8. program pr_6; uses crt; label m1; var c,e,a,b:real; function zf(var x:real):real; begin zf:=2*x-cos(x); end; begin clrscr; readln(a,b,e); {Проверка наличия корня на интервале [ a , b ]} if (zf(a)*zf(b))>0 then begin writeln('Нет корней'); goto m1; end; {Проверка, являются ли границы интервала корнем} if zf(a)=0.0 then begin writeln(a:6:2); goto m1; end; if zf(b)=0.0 then begin writeln(b:6:2); goto m1; end; {Деление отрезка и исключение половины, не содержащей корни} repeat c:=(a+b)/2; if zf(a)*zf(c)<0.0 then b:=c else a:=c; until abs(a-b)<e; writeln('Корень=',(a+b)/2:6:2); m1: readln; end. Тестовый набор данных: a b e -4 4 0.0001 Корень =0.45
  9. 9. Поиск наименьшего делителя целого числа program pr7; var a,i:integer; begin { Поиск наименьшего делителя целого числа} readln(a); for i:=2 to a do begin if a mod i=0 then begin writeln(i); i:=a; end; end; readln; end. Разложение целого числа на множители program pr8; uses crt; var a,i:integer; begin clrscr; { Разложение целого числа на множители} readln(a); for i:=2 to a-1 do begin if a mod i=0 then writeln(i:3); end; readln; End. Поиск заданной подстроки program pr_5; var a:string; k,i,dl:integer; begin k:=0; writeln(‘ Введите строку символов'); readln(a); dl:=lenght(a); for i:=1 to dl-2 do if copy(a,i,3)='abc‘ then k:=k+1; writeln(k); readln; end. program sh_3; const n=5 ; var a:array [1..n] of integer; i:integer; begin for i:=1 to n-1 do read(a[i]); readln(a[ n ]); { Обработка массива } readln; end. Ввод массива с клавиатуры Чтобы правильно работала в конце программы конструкция readln
  10. 10. Умножение двух многочленов program pr_9; uses crt; var a:array [0..100] of integer; x,y:real; i,j,n,m,k,f:integer; begin clrscr; writeln(' Введите степени многочленов m и n'); readln(m,n); writeln(' Введите коэффициенты 1-го многочлена'); for i:=m downto 1 do read(a[i]); readln(a[0]); writeln(' Умножение двух многочленов'); for i:=n+m downto m do begin writeln(' Введите один коэффициент 2-го многочлена'); readln(k); for j:=m downto 1 do {begin} a[j+m+1]:=a[j]*k+a[j+m]; {end;} a[m+1]:=a[0]*k; { Печать коэффициентов произведения двух многочленов} writeln('a(',i,')=',a[m+m+1]); end; for i:=m-1 downto 0 do writeln('a(',i,')=',a[i+m+1]); readln; end. Тестовый набор данных: (5 X 2 + 3X – 4 )  (x 2 + 2) = 5X 4 + 3X 3 + 6X 2 + 6X - 8 0 1 2 3 4 5   -4 3 5 0 0 0   -4 3 5 <ul><li>1 </li></ul>0 -4 3 <ul><li>0 </li></ul>-8 6 6 <ul><li>2 </li></ul>
  11. 11. Компьютер-Наставник. Подготовка к ЕГЭ Для того чтобы программа работала в полном режиме, необходимо при запуске ввести пароль. Пароль находится на главной странице нашего сайта www.school-tests.ru и обновляется ежедневно . При открытии программы необходимо подключение к интернет. После проверки программой пароля от интернета можно отключиться. Для работы программы подключение к Интернет не нужно.   &quot;Компьютер-Наставник. Подготовка к ЕГЭ&quot; - это программа, которая уже помогла 2 поколениям учеников сдать Единый государственный экзамен. Её структура интуитивно понятна. Программа имеет 2 режима: Режим обучения и Режим контроля Режим обучения предназначен для самостоятельной подготовки к ЕГЭ. Ученик сам выбирает тему и сложность(А1, А2 и т.п. в соответствии с форматом ЕГЭ), а программа генерирует задачи в соответствии с этим выбором. Каждый раз задачи РАЗНЫЕ! Это значит, что задач по выбранной Вами теме точно хватит, чтобы Вы научились их решать! Когда Вы выберете ответ (или введёте его, если это подразумевается в задании), программа сообщит, правильный ли он. Если Вы не уверены в ответе, всегда можно посмотреть путь решения данной задачи с ответом или помощь в виде справочного материала по решению данного класса задач. В любой момент можно распечатать задания на принтере или сохранить их, сделать перерыв, а потом вернуться к сохраненному. Ведется статистика верно и неверно решенных задач.   Режим контроля является имитацией Единого государственного экзамена. Система генерирует задачи по всем темам в соответствии с форматом ЕГЭ, и выделяет время для их решения. Решать можно в любом порядке, как и на ЕГЭ. Ведется подсчет набранных баллов. Каждый раз, когда Вы выбираете Режим контроля, задачи будут разные!

×