Главная | Обратная связь | Поможем написать вашу работу!
МегаЛекции

Рекомендации по выполнению контрольных работ

Контрольная работа по дисциплине «Основы алгоритмизации и программирования»

Вариант I

1. Написать программу, решающую неравенство.

ax2+b£0.

Программа должна правильно выполняться при любых значениях начальных данных.

2. Напишите следующую программу.

Найти сумму целых положительных чисел, кратных 4 и меньших 100.

3. Разработайте программу, формирующую квадратную матрицу D(n,n), где n≤15, элементы которой определяются по формуле

 

при i<j;

D[i,j] = 1 при i=j;

при i>j,


где i – номер строки матрицы;

j – номер столбца матрицы.

В сформированной матрице определить максимальный и минимальный элемент и поменять их местами.

Вывести исходную матрицу, соответствующие элементы и их координаты, а также преобразованную матрицу.

4. Дана строка текста длиной из 40 символов, состоящая из слов, разделённых пробелами.

Разработать программу удаления «лишних» пробелов.

Лишними считать пробелы в начале строки до первого символа, второй и более пробелы между словами и пробелы в конце строки.

Вывести исходную и преобразованную строки и количество удалённых пробелов.

 

Вариант II

1. Написать программу, решающую неравенство.

ax2+bx+c>0.

Программа должна правильно выполняться при любых значениях начальных данных.

2. Напишите следующую программу.

Найти сумму целых положительных четных чисел, меньших 100.

3. Дана матрица A(n,m), где n,m≤15.

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

Вывести исходную матрицу, значение среднего арифметического элементов матрицы и сформированный массив B.

4. Разработайте программу, которая вводит строки, содержащие фамилию, имя, отчество и год рождения, а выводит – строки, содержащие фамилию, инициалы и возраст на текущий год.

Завершение ввода – при чтении пустой строки.

Вывести исходные и преобразованные строки.

 

Вариант III

1. Написать программу, решающую неравенство.

ax2+b>0.

Программа должна правильно выполняться при любых значениях начальных данных.

2. Напишите следующую программу.

Найти сумму целых положительных нечетных чисел, меньших 200.

3. Дан массив D(n), где n≤10, вещественного типа.

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

Выведите на печать исходный массив и искомую сумму.

4. Разработать программу, которая определяет в строке количество слов длиннее четырёх символов. Слова разделены одним пробелом.

Вывести исходную строку, полученные слова и количество полученных слов.

 

Вариант IV

1. Написать программу, решающую неравенство.

ax2+b£0.

Программа должна правильно выполняться при любых значениях начальных данных.

2. Напишите следующую программу.

Найти сумму целых положительных чисел, больших 20, меньших 100 и кратных 3.

3. Дан одномерный массив вещественных чисел A(n), где n≤50.

Разработайте программу, формирующую новый массив B из элементов массива A, которые превышают среднее арифметическое значение элементов массива A, стоящих на местах с чётными индексами.

Выведите среднее арифметическое значение элементов массива A, исходный и сформированный массивы.

4. Разработайте программу, которая осуществляет замену заданной строки в отсортированном по алфавиту массиве строк, и сортирует полученный массив строк в соответствии с русским алфавитом.

Вывести исходный и преобразованный массивы.

 

Вариант V

1. Написать программу, решающую неравенство.

ax2+bx>0.

Программа должна правильно выполняться при любых значениях начальных данных.

2. Напишите следующую программу.

Найти сумму первых 10 членов ряда, в котором an=ln(n!)/n2.

3. Дан одномерный целочисленный массив C(n), где n≤40, содержащий как положительные, так и отрицательные элементы.

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

Выведите массив C, а также номер найденного элемента, или соответствующее сообщение, если такого элемента нет.

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

Вывести исходную и преобразованную строки.

 

Вариант VI

1. Написать программу, решающую неравенство.

ax2+bx+c£0.

Программа должна правильно выполняться при любых значениях начальных данных.

2. Напишите следующую программу.

Найти сумму первых 15 членов ряда, в котором an=nln n/(ln n)n.

3. Разработайте программу, которая формирует массив B(n), где n≤30, содержащий элементы целого типа в диапазоне от -20 до 130, используя датчик случайных чисел.

В сформированном массиве определите количество и среднее арифметическое значение положительных и отрицательных элементов массива.

Выведите массив B, а также все найденные в программе величины.

4. Дана строка текста длиной из 80 символов, состоящая из слов, разделённых пробелом, в конце точка.

Разработайте программу, которая определяет номера слов, в которых содержится более трёх символов «А».

Вывести исходную строку и номера слов. Если слов с таким числом букв не окажется, вывести соответствующее сообщение.

 

Вариант VII

1. Написать программу, решающую систему неравенств.

.

Программа должна правильно выполняться при любых значениях начальных данных.

2. Напишите следующую программу.

Найти сумму первых 12 членов ряда, в котором .

3. Дан одномерный целочисленный массив D(n), где n≤50, содержащий как положительные, так и отрицательные элементы.

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

Выведите массив D, а также все найденные в программе величины.

4. Дана строка текста длиной из 40 символов, состоящая из слов, разделённых пробелом, в конце точка.

Разработайте программу, которая удаляет из текста слово, содержащее максимальное количество букв «В».

Вывести исходную и преобразованную строки. Если в тексте нет слов с буквой «В» – вывести соответствующее сообщение

 

Вариант VIII

1. Написать программу, решающую систему неравенств.

.

Программа должна правильно выполняться при любых значениях начальных данных.

2. Напишите следующую программу.

Найти сумму первых 7 членов ряда, в котором .

3. Дана матрица A(n,m), где n,m≤25.

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

Вывести исходную и преобразованную матрицу.

4. Дан массив символьных строк длиной 40 символов. Строки состоят из слов, разделённых пробелом, в конце точка.

Разработайте программу, которая формирует одномерный массив B, содержащий в качестве элементов количество слов каждой строки, начинающихся на гласную букву. Если таких слов нет, в соответствующий элемент массива занести 0.

Вывести исходный и сформированный массивы.

 

Вариант IХ

1. Написать программу, решающую систему неравенств.

.

Программа должна правильно выполняться при любых значениях начальных данных.

2. Напишите следующую программу.

Найти сумму первых 9 членов ряда, в котором .

3. Дана матрица C(n,m), где n,m≤30.

Разработайте программу, умножающую положительные элементы на первый элемент соответствующей строки, а отрицательные – на последний.

Вывести исходную и преобразованную матрицу.

4. Дана строка, состоящая из слов, разделённых одним пробелом.

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

Вывести исходную и полученные строки.

 

Вариант Х

1. Написать программу, решающую систему неравенств.

.

Программа должна правильно выполняться при любых значениях начальных данных.

2. Напишите следующую программу.

Найти сумму первых 11 членов ряда, в котором an=n!/nn.

3. Дана матрица E(n,m), где n,m≤40.

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

Вывести исходную и преобразованную матрицу.

4. Разработайте программу, которая осуществляет поиск заданной строки в отсортированном в соответствии с русским алфавитом массиве строк n=100.

Вывести исходный массив и количество вхождений заданной строки.

МЕТОДИЧЕСКИЕ

рекомендации по выполнению контрольных работ

Курс «Основы алгоритмизации и программирования» предполагает изучение нового материала и углубление на более высоком проблемно-теоретическом уровне уже изученного по курсу «Информатика».

Задачи курса: Ознакомить студентов с основами алгоритмизации, сформировать устойчивые навыки и прочные знания по структурному программированию, ознакомить с основами объектно-ориентированного программирования.

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

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

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

В процессе подготовки все имеющиеся в пособиях иллюстрации, схемы, диаграммы и таблицы необходимо внимательно рассматривать.

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

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

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

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

Контрольная работа включает изучение разделов «Управляющие структуры», «Структуры данных».

Для иллюстрации работы инструментальных средств программирования выбран Turbo Pascal.

На практике часто возникают задачи с необходимостью управления пользователем ходом выполнения программы. Например, в нашем случае это может быть выполнение двух операций: сложение или вычитание, — в зависимости от входных данных x и y. Если x<y, то выполняется операция сложения (x+y), иначе — операция вычитания (x-y).

Для реализации управления ходом выполнения программы служит условная конструкция:

If <логическое выражение> then <опрератор1> [else <опрератор2>]

где в качестве <логическое выражение> указывается некоторое условие, при выполнении которого выполняется оператор <оператор1>, а при невыполнении оператор <опрератор2>. При этом конструкция «else» является необязательной (что обозначено заключением ее в квадратные скобки). В случае отсутствия конструкции «else» при ложности условия <логическое выражение> происходит выход из условной конструкции и передача управления следующему оператору.

В логических выражениях могут быть использованы следующие логические отношения.

1) < — меньше,

2) <= — меньше, либо равно,

3) > — больше,

4) >= — больше, либо равно,

5) = — равно,

6) <> — неравно,

7) or — логическое или,

8) and — логическое и,

9) not — логическое не.

Например, если необходимо вычислить произведение двух переменных только в случае, когда одновременно выполняются два условия: x<y и x+y>0, то условный оператор будет выглядеть следующим образом.

If (x<y) and (x+y>0) then

z:=x*y;

Обращаем внимание, что в условной конструкции может выполняться только один оператор, поэтому, чтобы выполнить несколько операторов, из них собирается составной оператор, который начинается со служебного слова begin, а заканчивается — end. Например, если необходимо вычислить при указанных условиях еще и сумму, то получим

If (x<y) and (x+y>0) then

Begin

z:=x*y;

u:=x+y

End;

Напишем программу таким образом, чтобы если x<y, то выполнялась операция сложения (x+y), иначе — операция вычитания (x-y).

Uses

crt;

Var

x, y, z: real;

Begin

ClrScr;

Write(‘x=’);

ReadLn(x);

Write(‘y=’);

ReadLn(y);

If x<y then

Begin

z:=x+y;

WriteLn(‘x+y=’, x:6:2, ‘+’, y:6:2, ‘=’, z:6:2)

End

Else

Begin

z:=x-y;

WriteLn(‘x-y=’, x:6:2, ‘-’, y:6:2, ‘=’, z:6:2)

End

End.

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

For <переменная>:=<выражение1> to <выражение2> do {заголовок}

<оператор>; {тело}

<переменная> должна быть одним из целочисленных типов, <выражение1> и <выражение2> в результате должны давать целое число. В теле цикла может находиться только один оператор. Поэтому, если необходимо выполнить несколько операторов, то используем составной оператор. Например, вычислить произведение всех целых чисел от 1 до n можно с помощью следующего фрагмента.

p:=1;

for i:=2 to n do

p:=p*i;

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

Uses

Crt;

Type

TVector=array[1..10] of real;

Var

i, n: integer;

a, b, c: TVector;

begin

ClrScr;

Write(‘n=’); readln(n);

{Вводим с клавиатуры массивы a и b}

For i:=1 to n do

Begin

Write(‘a[‘, i, ‘]=’); readln(a[i]);

End;

For i:=1 to n do

Begin

Write(‘b[‘, i, ‘]=’); readln(b[i]);

End;

{Вычисляем сумму векторов c=a+b}

For i:=1 to n do

Begin

c[i]:=a[i]+b[i];

Writeln(‘c[‘, i, ‘]=’, c[i])

End

End.

Продемонстрируем использование циклов при работе со строками. Здесь нам понадобиться цикл с предусловием (цикл «пока»). Этот цикл необходим, когда заранее неизвестно количество повторений.

While <логическое выражение> do

<оператор>;

Тело цикла выполняется, пока <логическое выражение> принимает значение «истина». Т. е. в цикле «пока» указывается условие выполнения цикла. В теле цикла может находиться только один оператор. Поэтому, если необходимо выполнить несколько операторов, то используем составной оператор.

Решим следующую задачу.

С клавиатуры вводится одна строка, которая содержит фамилию, имя и отчество, разделенные одним или несколькими пробелами, причем в начале и конце строки пробелов нет. Надо вывести в столбик три строки: фамилию, имя и отчество соответственно.

Uses

Crt;

Const

STRMAX=50; {максимальная длина строки}

LISTMAX=3; {максимальное количество строк в списке}

Type

TIndList=1..LISTMAX {тип для номера строки в списке}

TIndStr=1..STRMAX; {тип для номера символа в строке}

TStr50=string[STRMAX]; {тип для строки с максимальной длиной}

TListStr50=array[TIndList] of TStr50; {тип для списка строк}

Var

i: TIndList

n: TIndStr;

sfio: TStr50;

ls: TListStr50;

begin

ClrScr;

Write(‘Ф.И.О.=’); readln(sfio);

For i:=1 to LISTMAX-1 do {перебираем строки в списке ls}

Begin

n:=pos(‘ ‘, sfio); {вычисляем позицию пробела в строке sfio}

ls[i]:=copy(sfio, 1, n-1); {копируем первое слово из строки sfio в

строку списка ls}

delete(sfio, 1, n); {удаляем скопированное слово вместе с пробелом

из строки sfio}

while sfio[1]=’ ‘ do {проверяем остались ли еще в начале строки sfio

пробелы и, если да, то удаляем их}

delete(sfio, 1, 1)

end;

ls[LISTMAX]:=sfio; {пересылаем последнее слово из строки sfio в

список ls}

For i:=1 to LISTMAX do {выводим список ls на экран}

Writeln(ls[i]);

Readkey

end.

При решении задания №1 следует обратить особое внимание на следующее. Результат необходимо вывести в принятом в математике виде, например, [1;3)È[4;5]. Для отображения, отсутствующих на клавиатуре математических символов, следует придерживаться следующих обозначений:

È — U

¥ — oo

Æ — (/)


 

ТРЕБОВАНИЯ

Поделиться:





Воспользуйтесь поиском по сайту:



©2015 - 2024 megalektsii.ru Все авторские права принадлежат авторам лекционных материалов. Обратная связь с нами...