Образец контрольной работы №2 по Информатике для студентов 1 курса ВКСС з/о.


КОНТРОЛЬНАЯ РАБОТА №2 по «Информатике»

для студентов 1 курса заочного отделения специальности

Вычислительные машины, комплексы, системы и сети инженерно-технического института

Разработала: Ст.преподаватель кафедры ПОВТ Фурдуй Ольга Михайловна

Тирасполь, 2008

Содержание:

 

  1. Предисловие…………………………………………………………..с.3
  2. Программа дисциплины на 2 семестр……………………………….с.4
  3. Правила выполнения и оформления контрольной работы №2…….с.5
  4. Образец выполнения контрольной работы………………………….с.7
  5. Задания для контрольной работы №2……………………………… с.15
  6. Литература……………………………………………………………. с.49
  7. Номера вариантов……………………………………………………..с.50

Предисловие

Студенты-заочники первого курса инженерно-технического института изучают предмет «Информатика» в течение всего первого курса: первый семестр — пользовательский курс, второй семестр — основы программирования на языке высокого уровня.

Основной формой обучения студента-заочника является самостоятельная работа, которая включает в себя изучение теоретического и практического материала по учебникам и учебным пособиям. Каждому студенту необходимо во 2 семестре выполнить контрольную работу № 2, по­лучить зачет по контрольной работе №2 и затем сдать экзамен. В процессе всего курса студент может получать у преподавателя необходимые ему устные консультации.

В настоящем пособии приводятся:

  • программа курса «Информатика» во втором семестре;
  • правила выполнения и оформления контрольной работы;
  • образец выполнения контрольной работы;
  • задания для выполнения контрольной работы;
  • список вопросов к экзамену;
  • литература.

Программа курса «Информатика» во втором семестре

Тема: Инструментальное программное обеспечение

  1. Понятие алгоритма. Особенности алгоритмов. Свойства алгоритмов.
  2. Сложность большой задачи. Постановка задачи для ЭВМ.
  3. Обзор современных языков программирования. Язык Си.
  4. Технология программирования в интегрированной среде.
  5. Основные типы данных и их внутреннее представление.
  6. Переменные и константы.
  7. Операции и выражения в языке Си.
  8. Преобразования типов.
  9. Стандартные функции ввода/вывода. Примеры задач.
  10. Операторы управления вычислительным процессом.
  11. Массивы. Одномерные и двумерные массивы. Инициализация массивов.
  12. Основные алгоритмы работы с массивами.
  13. Функции. Передача параметров и возврат значений из функции.

Правила выполнения и оформления контрольной работы

  1. Контрольная работа должна быть выполнена в срок, указанный в учебном графике.
  2. На титульном листе должны быть четко написаны Ф.И.О. студента, факультет, курс, группа,
    номер варианта, номер зачетной книжки и Ф.И.О. преподавателя.
  3. Контрольная работа должна быть зарегистрирована у методистов заочного отделения.
  4. Контрольную работу следует выполнить на писчей бумаге формата А4, оставляя поля для за-­
    мечаний.
  5. Контрольная работа должна быть выполнена в интегрированной среде BorlandC 0 или 5.0.
  6. Для защиты контрольной работы (перед экзаменом во время летней сессии) необходимо пре­
    доставить преподавателю дискету 3,5″, содержащую тексты программ в формате *.срр.
  7. Все задачи входящие в вариант, должны быть решены. Перед решением каждой задачи необ-­
    ходимо записать полный текст ее условия. После решения каждого задания необходимо ос-­
    тавлять место для учета возможных замечаний.
  8. При получении не допущенной к защите работы, студент должен выполнить ее повторно. За-­
    дачи с ошибками переписать заново полностью без ошибок и сдать на проверку вместе с не
    зачтенной работой.
  9. Зачтенная работа допускается к защите.
  10. Контрольная работа не проверяется, если студент решил не свой вариант.
  11. Зачтенная работа в обязательном порядке предъявляется на экзамене.
  12. В контрольную работу входит задание одного варианта, определяемого согласно списку, при-­
    лагаемого к заданиям данной контрольной работы.

Контрольная работа состоит из задач, которые следует реализовать в виде программ, на­писанных на языке Си. В контрольной работе представлены задачи по следующим темам:

  • линейные алгоритмы;
  • разветвляющиеся алгоритмы;
  • циклические алгоритмы;
  • векторы;
  • матрицы.

Задачи, как правило, не требуют глубоких математических или других специальных зна­ний, то есть для решения предложенных задач достаточно школьного курса и лишь в некоторых случаях требуется знание некоторых элементов аналитической геометрии, векторной алгебры и математического анализа (данные дисциплины изучаются в 1 семестре 1 курса в курсе «Матема­тического анализа» и «Алгебра и аналитическая геометрия»).

Программы должны быть написаны и оформлены согласно следующим требованиям.

  1. программа не должна содержать синтаксических, логических, орфографических ошибок;
  2. каждый оператор должен быть записан на новой строке;
  3. необходимо оставлять отступы от левого края текста программы, то есть текст программы
    должен быть написан согласно соподчиненности операторов, например операторы, выполняе­-
    мые в случае истинности или ложности условия в операторе if…else, следует писать правее,
    например:

if(N%3== 0)

printf(«Число %d кратно трем», N); else

printf(«Число %d не кратно трем», N);

как видно оператор вызова функции printf(); записан правее на 2 знакоместа.

Аналогичное требование распространяется на операторы циклических вычислений.

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

Главное требование, которому должна удовлетворять программа, — работать в полном соответствии со спецификацией и адекватно реагировать на любые действия пользователя.

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

  • оригинальность решения;
  • объем памяти, занимаемой программой (с учетом памяти, отводимой под массивы);
  • трудоемкость вычислений, то есть эффективность алгоритма;
  • лаконичность и наглядность программы, включая наличие и качество комментариев.

Задание №2

2.27

Написать программу, которая после введенного с клавиатуры числа (в диапазоне от 1 до 99), обозначающего денежную еди­ницу, дописывает слово «копейка» в правильной форме. Напри­мер, 5 копеек, 41 копейка и т.д.

 

#include <stdio.h>

#include <conio.h>

void main()

{

clrscr();

int k;

printf(«Введите количество копеек (1-99) «);

a:scanf(«%d»,&k);

if(k<1||k>99)

{

printf(«Ошибка ввода!\nПовторите ввод «);

goto a;

}

else

if(k>10&&k<15)

printf(«%d копеек»,k);

else

switch(k%10)

{

case 1:

printf(«%d копейка»,k);

break;

case 2:

case 3:

case 4:

printf(«%d копейки»,k);

break;

default:

printf(«%d копеек»,k);

}

getch();

}

Задание №3

2.77

Имеется пронумерованный список деталей: 1 — шуруп, 2 — гайка, 3 — винт, 4 — гвоздь, 5 — болт. Составить программу, которая по номеру детали выводит на экран ее название.

 

#include <stdio.h>

#include <conio.h>

void main(void)

{

clrscr();

int detal;

a:printf(«для получения названия детали введите номер (от 1 до 5) «);

scanf(«%d»,&detal);

switch(detal)

{

case 1:

printf(«шуруп»);

break;

case 2:

printf(«гайка»);

break;

case 3:

printf(«винт»);

break;

case 4:

printf(«гвоздь»);

break;

case 5:

printf(«болт»);

break;

default:

printf(«Ошибка ввода»);

goto a:

}

getch();

}

Задание №5

 

3.77

Напишите программу, которая выводит на экран таблицу значений функции у= 2х2-5х-8 в диапазоне от -4 до 4. Шаг из­менения аргумента 0,2.

 

#include <stdio.h>

#include <conio.h>

void main(void)

{

clrscr();

float x;

printf(«Таблица значений функции y=2x^2-5x-8 на отрезке [-4;4] с шагом 0.2\n\n»);

printf(«\tАргумент\t\tФункция\n\n»);

for(x=-4;x<=4;x+=0.2)

printf(«\t%6.1f\t\t%14.2f\n»,x,2*x*x-5*x-8);

getch();

}

Задание №6

 

3.127

Найти на отрезке [n;m]  натуральное число, имеющее наибольшее количество делителей.

 

#include <stdio.h>

#include <conio.h>

void main(void)

{

clrscr();

int n,m,i,j,k,temp,temp_k;

printf(«Введите нижнюю границу отрезка «);

scanf(«%d»,&n);

printf(«Введите верхнюю границу отрезка «);

scanf(«%d»,&m);

temp=n,temp_k=0;

for(i=n;i<m;i++)

{

k=0;

for(j=1;j<=i/2;j++)

if(i%j= =0)

k++;

if(temp_k<k)

{

temp_k=k;

temp=i;

}

}

printf(«\nНаибольшее количество делителей=%d имеет число %d»,temp_k,temp);

getch();

}

Задание №7

 

4.27

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

 

#include <stdio.h>

#include <conio.h>

#define n 10

void main(void)

{

int i,j,k=0;

int mas[n];

clrscr();

printf(«Введите элементы массива\n»);

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

scanf(«%d»,&mas[i]);

printf(«Элементы массива,значения которых не превышает их индекса:\n»);

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

if(mas[i]<=i)

printf(«%5d»,mas[i]);

getch();

}

Задание №8

 

4.77

Найти максимальный элемент массива и получить новый массив, каждый элемент которого получен умножением элемента исходного массива на максимальный.

 

#include <stdio.h>

#include <conio.h>

#define n 10

void main()

{

clrscr();

float mas1[n],mas2[n],max;

int i;

//ввод массива

printf(«\nВведите элементы массива\n»);

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

scanf(«%f»,&mas1[i]);

max=mas1[0];//пусть нулевой элемент — максимален

for(i=1;i<n;i++)

if(max<mas1[i])

max=mas1[i];

//формирование и вывод нового массива

printf(«\nНовый массив:\n»);

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

{

mas2[i]=mas1[i]*max;

printf(«%10.2f»,mas2[i]);

}

getch();

}

Задание №9

 

5.27

 

Определить номера тех строк целочисленной матрицы А[N, К], которые совпадают с массивом D[K]. Если таких строк  нет, выдать соответствующее сообщение.

#include <stdio.h>

#include <conio.h>

#define n 5

#define k 6

void main()

{

clrscr();

int A[n][k],D[k],i,j,s;

int S=0;

//ввод матрицы

printf(«\t\tВведите двумерный массив\n»);

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

{

printf(«\nВведите элементы %d строки\n»,i+1);

for(j=0;j<k;j++)

scanf(«%d»,&A[i][j]);

}

//ввод одномерного массива

printf(«\n\n\t\tВведите одномерный массив\n»);

for(j=0;j<k;j++)

scanf(«%d»,&D[j]);

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

{

s=0;

for(j=0;j<k;j++)

if(A[i][j]= =D[j])

s++;

if(s= =k)

{

S++;

printf(«\n%d cтрока двумерного массива полностью совпадает с одномерным массивом\n»,i);

}

}

if(S= =0)

printf(«\nВ двумерном массиве нет строк полностью совпадающих с одномерным массивом»);

getch();

}

Задание №10

 

5.77

Матрица m*n состоит из нулей и единиц. Найти в ней самую длинную цепочку подряд стоящих нулей по горизонтали.

 

#include <stdio.h>

#include <conio.h>

#define m 3

#define n 8

void main()

{

clrscr();

int A[m][n],i,j;

int S,max=1;

//ввод матрицы

printf(«\t\tВведите двумерный массив(нули или единицы)\n»);

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

{

printf(«\nВведите элементы %d строки\n»,i+1);

for(j=0;j<n;j++)

scanf(«%d»,&A[i][j]);

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

{

S=1;

for(j=0;j<n;j++)

if(A[i][j]= =0&&A[i][j+1]= =0)

S++;

if(max<S)

max=S;

}

printf(«\nСамая длинная цепочка состоит из %d нулей»,max);

getch();

}

Задание №11

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

#include<stdio.h>

#include<conio.h>

#define PI 3.1415

float ob(float h,float r)

{

return(PI*r*r*h);

}

void main()

{

float r,h,v;

puts(«Вычисление объема цилиндра\n»);

printf(«ВВедите высоту и радиус основания\n»);

scanf(«%f%f»,&r,&h);

v=ob(h,r);

printf(«Объем цилиндра  %3.3f\n»,v);

getch();

}

Задание №12

Дана последовательность положительных чисел. Найти произведение чисел, больших заданного N:

#include<stdio.h>

#include<conio.h>

#include<math.h>

int func(int *,int, int);

void main()

{

clrscr();

int m[5],n,v;

for(int i=0;i<5;i++)

{

printf(» Введите %d –ый элемент массива «,i+1);

scanf(«%d»,&m[i]);

}

puts(«Введите заданное число n\n»);

scanf(«%d»,&n);

v=func(&m[0],5,n);

if(v==0)

printf(» Чисел больших заданного    %d нет\n»,n);

else

printf(«Произведение чисел, больших заданного %d = %d \n»,n,v);

getch();

}

int func(int *pm,int n,int m)//

{

int a=1;

for(int i=0;i<n;i++)

if(*(pm+i)>m)

a*=*(pm+i);

return a;

}