Приведен пример программы на языке паскаль эта программа

Напишите про­грам­му для ре­ше­ния сле­ду­ю­щей задачи. Камера на­блю­дения ре­ги­стри­ру­ет в ав­то­ма­ти­че­ском ре­жи­ме ско­рость про­ез­жа­ю­щих мимо неё автомобилей, округ­ляя зна­че­ния ско­ро­сти до целых чисел. Не­об­хо­ди­мо опре­де­лить ми­ни­маль­ную за­ре­ги­стри­ро­ван­ную ско­рость автомобиля. Если ско­рость хотя бы од­но­го ав­то­мо­би­ля была боль­ше 80 км/ч, вы­ве­ди­те «YES», иначе вы­ве­ди­те «NO».
Программа по­лу­ча­ет на вход число про­ехав­ших ав­то­мо­би­лей N (1 =< N =< 30), затем ука­зы­ва­ют­ся их скорости. Зна­че­ние ско­ро­сти не может быть мень­ше 1 и боль­ше 300.Программа долж­на сна­ча­ла вы­ве­сти ми­ни­маль­ную скорость, затем YES или NO.
Пример ра­бо­ты программы:

Входные данные Выходные данные
4
74
69
63
96
63
YES

Что необходимо знать для решения задания 20.2 ОГЭ по информатике 9 класс?

  • Типы переменных.
  • Оператор цикла FOR
  • Условный оператор IF

Пример решения верного решения на 2 балла.

pascal Пустая ветка then в IF — как исправить код, пример программы Паскаль

var
a, b, c, min: integer; //Объявляем переменные целочисленного типа
d: boolean; //объявляем переменную логического типа. Для определения верности условия (скорость больше 80 км/ч)
begin
//******инициализируем переменные*******
min := 300; //переменная для нахождения минимальной скорости. По условию задачи, скорость не может быть более 300
a := 0; //обнуляем переменную
c := 0; //обнуляем переменную
d := false; //задаём исходное логическое значение 0
readln(a); //чтение с клавиатуры числа количества машин
for b := 1 to a do //задаём цикл от 1 до a количества машин
begin
readln(c); //считываем значение скорости
if c min := c; //Каждый раз присваиваем значение переменной min наименьшую введённую скорость
if c > 80 then //производим проверку была ли скорость больше 80
d := true; //если была скорость более 80, то переменная d меняет логическое значение на true (1)
end;
writeln(min); //Выводим минимальную скорость
if d = true then //Проверяем значение логической переменной
writeln(‘YES’) //Выводим YES, если логическая переменная = true
else writeln(‘NO’); //выводим NO, если логическая переменная не равна true
readln; //Чтобы программа не закрывалась

Скачать исходник программы задание 20.2 ОГЭ:

20.2.pas

Программу можно написать и проще.

Пример решения задания в упрощённой форме.

var
a, b, c,d, min: integer;
begin
min := 300;
readln(a);
for b := 1 to a do
begin
readln(c);
if c min := c;
if c > 80 then
d := 1;
end;
writeln(min);
if d = 1 then
writeln(‘YES’)
else writeln(‘NO’);
readln;

В чём разница решений?

Pascal. Примеры программ

Во втором, упрощённом варианте, не инициализированы переменные. Это не обязательно в PascalABC.Net, так как переменные изначально имеют значения «0». Но делать это желательно, так как это считается правилом хорошего тона. Плюс ко всему в других версиях интерпретатора Pascal без инициализации код работать не будет.

Так же, во второй версии программы не использован логический тип переменных. Использовать его не обязательно. Тут решение на усмотрение составителя программы.

Важно!

У проверяющих совсем другие входные данные для проверки вашей программы (не как приведены в задании), поэтому не старайтесь написать программу под конкретные числа.

Источник: www.losev-it.ru

Задача №25. Написание фрагмента программы.

В задачах этого типа встречаются следующие основные алгоритмические (программные) блоки:

Перебор элементов массива

Для одномерного массива запускается цикл по всем его элементам.

Для двумерного массива – цикл в цикле по строкам и столбцам.

Для n-мерного массива – n вложенных циклов.

Перебор элементов массива, удовлетворяющих условию

Для перебора элементов массива, удовлетворяющих условию (например, только четных), в начале цикла устанавливается условие. Тогда все дальнейшие действия выполняются только при выполнении этого условия. Если же условие не выполняется, цикл переходит к следующему элементу массива.

Обмен местами элементов массива

Производится аналогично обмену значениями переменных. Если нужно поменять местами n-й и k-й элементы массива, то n-й элемент сохраняется в буферную переменную, затем значение k-го элемента копируется в n-й, а значение буферной переменной копируется в k-й элемент.

Читайте также:
Программа настройки антенны 4g модема

Поиск максимального (минимального) элемента массива

При поиске максимального элемента массива за предполагаемый максимум берется первый элемент массива или число, заведомо меньшее любого элемента массива. Затем каждый следующий элемент массива сравнивается с предполагаемым максимумом, и если значение этого элемента больше, то оно становится новым предполагаемым максимумом.

Аналогично, при поиске минимального элемента массива за предполагаемый минимум берется первый элемент массива или число, заведомо большее любого элемента массива. Затем каждый следующий элемент массива сравнивается с предполагаемым минимумом, и если значение этого элемента меньше, то оно становится новым предполагаемым минимумом.

Вычисление суммы элементов массива

Сначала переменной, выделенной под хранение суммы, присваивается значение 0. Затем, при последовательном переборе элементов массива, значение суммы складывается со значением текущего элемента массива и становится новым значением суммы.

Вычисление произведения элементов массива

Сначала переменной, выделенной под хранение произведения, присваивается значение 1. Затем, при последовательном переборе элементов массива, значение произведения умножается на значение текущего элемента массива и становится новым значением произведения.

Вычисление среднего значения

При вычислении среднего значения выполняется вычисление суммы, а затем сумма делится на количество элементов массива.

Необходимо учитывать, что если в используемом языке программирования есть готовые функции для обработки массивов, то их использовать при решении задачи нельзя.

Дан це­ло­чис­лен­ный мас­сив из 20 эле­мен­тов. Эле­мен­ты мас­си­ва могут при­ни­мать целые зна­че­ния от –10 000 до 10 000 вклю­чи­тель­но. Опи­ши­те на есте­ствен­ном языке или на одном из язы­ков про­грам­ми­ро­ва­ния ал­го­ритм, поз­во­ля­ю­щий найти и вы­ве­сти ко­ли­че­ство пар эле­мен­тов мас­си­ва, в ко­то­рых хотя бы одно число де­лит­ся на 3. В дан­ной за­да­че под парой под­ра­зу­ме­ва­ет­ся два под­ряд иду­щих эле­мен­та мас­си­ва. На­при­мер, для мас­си­ва из пяти эле­мен­тов: 6; 2; 9; –3; 6 – ответ: 4.

Ис­ход­ные дан­ные объ­яв­ле­ны так, как по­ка­за­но ниже на при­ме­рах для не­ко­то­рых язы­ков про­грам­ми­ро­ва­ния и есте­ствен­но­го языка. За­пре­ща­ет­ся ис­поль­зо­вать пе­ре­мен­ные, не опи­сан­ные ниже, но раз­ре­ша­ет­ся не ис­поль­зо­вать не­ко­то­рые из опи­сан­ных пе­ре­мен­ных.

Бей­сик

Python

DIM A (1 TO N) AS INTEGER

DIM I AS INTEGER,

J AS INTEGER,

K AS INTEGER

FOR I = 1 TO N

INPUT A(I)

NEXT I

# це­ло­чис­лен­ные пе­ре­мен­ные j и k

for i in range(0, n):

Пас­каль

Ал­го­рит­ми­че­ский язык

var

a: array [1..N] of integer;

i, j, k: integer;

begin

for i := 1 to N do

readln(a[i]);

нач

цел N = 20

цел­таб a[1:N]

цел i, j, k

нц для i от 1 до N

ввод a[i]

кц

Си

Есте­ствен­ный язык

int main()

int a[N];

int i, j, k;

for (i = 0; i < N; i++)

return 0;

Объ­яв­ля­ем мас­сив A из 20 эле­мен­тов.

Объ­яв­ля­ем це­ло­чис­лен­ные пе­ре­мен­ные I, J, K.

В цикле от 1 до 20 вво­дим эле­мен­ты мас­си­ва A с 1-го по 20-й.

В ка­че­стве от­ве­та Вам не­об­хо­ди­мо при­ве­сти фраг­мент про­грам­мы (или опи­са­ние ал­го­рит­ма на есте­ствен­ном языке), ко­то­рый дол­жен на­хо­дить­ся на месте мно­го­то­чия. Вы мо­же­те за­пи­сать ре­ше­ние также на дру­гом языке про­грам­ми­ро­ва­ния (ука­жи­те на­зва­ние и ис­поль­зу­е­мую вер­сию языка про­грам­ми­ро­ва­ния, на­при­мер Free Pascal 2.6) или в виде блок-схемы. В этом слу­чае Вы долж­ны ис­поль­зо­вать те же самые ис­ход­ные дан­ные и пе­ре­мен­ные, какие были пред­ло­же­ны в усло­вии (на­при­мер, в об­раз­це, за­пи­сан­ном на есте­ствен­ном языке).

При­мер про­грам­мы на языке Пас­каль

for i := 1 to N-1 do

if (a[i] mod 3=0) or (a[i+1] mod 3=0) then

Дан це­ло­чис­лен­ный мас­сив из 30 эле­мен­тов. Эле­мен­ты мас­си­ва могут при­ни­мать целые зна­че­ния от 0 до 1000. Эле­мент мас­си­ва на­зы­ва­ет­ся хо­ро­шим, если это дву­знач­ное число, причём цифра в раз­ря­де де­сят­ков боль­ше, чем цифра в раз­ря­де еди­ниц. Опи­ши­те на одном из язы­ков про­грам­ми­ро­ва­ния ал­го­ритм, поз­во­ля­ю­щий найти и вы­ве­сти сумму всех хо­ро­ших эле­мен­тов мас­си­ва.

Ис­ход­ные дан­ные объ­яв­ле­ны так, как по­ка­за­но ниже. За­пре­ща­ет­ся ис­поль­зо­вать пе­ре­мен­ные, не опи­сан­ные ниже, но раз­ре­ша­ет­ся не ис­поль­зо­вать часть из них.

Читайте также:
Какие программы есть для создания минусовок

Бэй­сик

Пас­каль

DIM A(N) AS INTEGER

DIM I, J, S AS INTEGER

FOR I = 1 TO N

INPUT A(I)

NEXT I

var

a: array [1..N] of integer;

i, j, s: integer;

begin

for i:=l to N do

readln(a[i]) ;

Си

Ал­го­рит­ми­че­ский язык

void main()

int a[N];

int i, j, s;

for (i=0; i < N; i++)

нач

цел N=30

цел­таб а[1:N]

цел i, j, s

нц для i от 1 до N

ввод а[i]

кц

В ка­че­стве от­ве­та Вам не­об­хо­ди­мо при­ве­сти фраг­мент про­грам­мы, ко­то­рый дол­жен на­хо­дить­ся на месте мно­го­то­чия. Вы мо­же­те за­пи­сать ре­ше­ние также на дру­гом языке про­грам­ми­ро­ва­ния (ука­жи­те на­зва­ние и ис­поль­зу­е­мую вер­сию языка про­грам­ми­ро­ва­ния, на­при­мер, Free Pascal 2.4) или в виде блок-схемы. В этом слу­чае вы долж­ны ис­поль­зо­вать те же самые ис­ход­ные дан­ные и пе­ре­мен­ные, какие были пред­ло­же­ны в усло­вии.

При­мер про­грам­мы на языке Пас­каль

for i:=1 to N do begin

((a[i] div 10) > (a[i] mod 10) ) then s:=s+a[i];

Ты нашел то, что искал? Поделись с друзьями!

Благодарим за то, что пользуйтесь нашими публикациями. Информация на странице «Задача №25. Написание фрагмента программы.» подготовлена нашими редакторами специально, чтобы помочь вам в освоении предмета и подготовке к экзаменам. Чтобы успешно сдать нужные и поступить в высшее учебное заведение или колледж нужно использовать все инструменты: учеба, контрольные, олимпиады, онлайн-лекции, видеоуроки, сборники заданий. Также вы можете воспользоваться другими материалами из данного раздела.

Публикация обновлена: 07.06.2023

Источник: ege-study.ru

Пример правильной и эффективной программы на языке Паскаль: Var с: char

DIM s AS STRING DIM si AS STRING, s2 AS STRING mini = 3001 cntl = 0 INPUT n FOR j = 1 TO n LINE INPUT s i = 0 DO i = i. + 1 c$ = MID$(s, i, 1) LOOP WHILE c$ <>,,» DO i = i + 1 c$ = MID$(s, i, 1) LOOP WHILE c$ O,,» DO i = i + 1 c$ = MID$ (s, i, 1). LOOP WHILE c$ <>»” m = VAL(MID$(s, i+ 1, 2)) b = VAL(MID$(s, i + 4)) k = i — 1 s = LEFT$(s, k) IF m = 92 THEN IF mini > b THEN min2 = mini: cnt2 = cntl: s2 = si mini = b: cntl = 1: si = s ELSE IF mini = b THEN cntl = cntl + 1 ELSE IF min2 > b THEN min2 = b: cnt2 = 1: s2 = s ELSE IF min2 = b THEN cnt2 = cnt2 + 1 ENDIF ENDIF ENDIF ENDIF NEXT j

THEN PRINT s2 ELSE PRINT cnt2

THEN PRINT si ELSE PRINT cntl

Произведение двух чисел делится на 22, если:

— один из сомножителей делится на 22 (второй может быть любым) либо

— ни один из сомножителей не делится на 22, причём один из сомножителей делится на 2, а другой — на И.

Поэтому программа, вычисляющая кодовое число, может работать так.

Программа читает все входные данные один раз, не запоминая все данные в массиве. Программа для прочитанного фрагмента входной последовательности хранит значения четырёх величин:

М2 — самое большое чётное число, не кратное 11;

Mll — самое большое число, кратное И, но не кратное 2;

М22 — самое большое число, кратное 22;

MAX — самое большое число среди всех элементов последовательности, отличное от М22 (если число М22 встретилось более одного раза и оно же является максимальным, то MAX = М22).

После того как все данные прочитаны, искомое контрольное значение вычисляется как максимум из произведений М22*MAXи M2*M11.

Ниже приведён пример программы на языке Паскаль, которая реализует описанный алго­ритм.

Кроме того, приведён пример программы на языке Бейсик, которая правильно решает задачу, но использует алгоритм, немного отличающийся от описанного выше. Возможны и другие правильные алгоритмы.

Допускаются решения, записанные на других языках программирования_____________________

Пример правильной и эффективной программы на языке Паскаль:__________________________

Var M2,M11,M22,R, MAX, dat, res, i,N: Iongint; begin

MAX := O; readln(N); for i := 1 to N do begin readln(dat);

If ((dat mod 2) = O) and ((dat mod 11) > O)and (dat > М2) then М2 := dat;

If ((dat mod 11) = O) and ((dat mod 2) > O) and (dat > Mil) then Mil := dat;

Читайте также:
В какой программе делают персонажей для игр

If (dat mod 22 = O) and (dat > M22) then begin

If M22 > MAX then MAX := M22;

М22 := dat end else if dat > MAX then MAX := dat; end; readln(R); if (M2*M11 < M22*MAX) then res := M22*MAX

Writein (‘Вычисленное контрольное значение: ’,res);

If R = res then writein (’Контроль пройден’) else writein (’Контроль не пройден’);

MAX — О INPUT N FOR I = 1 ТО N INPUT DAT IF DAT MOD 2=0 AND DAT > М2 THEN М2 = DAT ELSE

IF DAT MOD 11 = 0 AND DAT > Ml THEN Mil = DAT END IF END IF

IF DAT MOD 22 = 0 AND DAT > M22 THEN IF M22 > MAX THEN

MAX = M22 END IF М22 = DAT ELSE IF DAT > MAX THEN MAX = DAT END IF END IF

PRINT ’’Вычисленное контрольное значение:”; RES IF RES = R THEN

PRINT ’’Контроль пройден”

PRINT ’’Контроль не пройден»

Для построения программы, эффективной по времени, можно определить для каждого эле­мента входных данных максимальное значение от начала данных до этого элемента включи­тельно. Затем нужно умножать каждый элемент, начиная с восьмого, на значение этого мак­симума, взятого на семь элементов раньше, и выбрать наибольшее из этих произведений. Предложенный алгоритм реализован в следующей программе на алгоритмическом языке_____________________________________________________________

Программа 1. Пример правильной программы на алгоритмическом языке.

Программа эффективна по времени, но неэффективна по памяти алг нач

ЦелS = .7 I требуемое расстояние между показаниями ЦелN ВводN ВещтабA[l:N] | все показания прибора ЦелI Нц дляI От1 ДоN ввод a[i] Кц вещтаб макс[1:Ы] ∣ Maκc[i] — максимум из I первых i показаний макс[1] := а[1] Нц дляI От2 ДоN Maκc[i] := max(макс[i-1], a[i]) Кц вещ м I максимальное значение произведения

М О Нц дляI ОтS + 1 ДоN м := max(м, a[i] * Maκc[i — s]) Кц вывод м кон

Можно вместо троекратного обращения к каждому элементу делать все необходимые опера­ции с ним сразу после чтения. В этом случае нужен только массив для хранения максимумов, а сами элементы можно не хранить. Этот путь реализован в следующей программе

Программа 2. Пример правильной программы на алгоритмическом языке. Программа эффективна по времени, но неэффективна по памяти алг нач

ЦелS = 7 I требуемое расстояние между показаниями ЦелN ВводN Вещ а I очередное показание прибора Вещтаб макс[1:М] ∣ Maκc[i] — максимум из

I первых i показаний ЦелI

I ввод первых показаний, допустимых пар пока нет Ввод макс[1] Нц дляI От2 ДоS Ввод а Maκc[i] := max(a, Maκc[i — 1]) Кц

I ввод остальных показаний, проверка пар

Вещ м I максимальное значение произведения

М : = О нц ДляI ОтS + 1 ДоN Ввод а Maκc[i] := max(a, Maκc[i — 1]) м :- max(м, а ★Maκc[i — s]) Кц вывод м Кон

Обе приведённые программы эффективны по времени, но неэффективны по памяти: исполь­зуемая память пропорциональна объёму исходных данных. Такие (и аналогичные по сути) программы оцениваются не выше 3 баллов.

Чтобы построить программу, эффективную по памяти, заметим, что, поскольку при обработ­ке очередного элемента входных данных используется максимум, найденный на семь элемен­тов раньше, достаточно хранить только семь последних максимумов. Весь алгоритм содержа­тельно остаётся тем же, но нужно аккуратно организовать работу с массивом максимумов из семи элементов. Ниже приводится пример программы, реализующей эту идею*

Программа 3. Пример правильной программы на алгоритмическом языке. Программа эффективна и по времени, и по памяти алг нач

ЦелS = 7 I требуемое расстояние между показаниями ЦелN ВводN Вещ а I очередное показание прибора Вещтаб макс[O :s — 1] !текущие максимумы

I последних 7 элементов ЦелI Ввод макс[1] Нц дляI От2 ДоS Ввод а Maκc[mod(i, s)] := max(a, Maκc[i — 1]) Кц вещ м I максимальное значение произведения м : = О

Источник: apple-tour.ru

Рейтинг
( Пока оценок нет )
Загрузка ...
EFT-Soft.ru