Сдам Сам

ПОЛЕЗНОЕ


КАТЕГОРИИ







Программирование линейной структуры





МЕТОДИЧЕСКИЕ УКАЗАНИЯ

К выполнению

самостоятельной контрольной работы

по дисциплине

«Основы программирования»

для студентов специальностей

 

051001 Профессиональное обучение (по отраслям)

Программирование в компьютерных системах,

 

230115 Программирование в компьютерных системах

Для очной и заочной форм обучения

 

Омск, 2014

 


Данные методические указания включают в себя 12 тем для изучения языка программирования высокого уровня Си. Эти темы помогут студентам освоить как базовые понятия программирования на алгоритмическом языке Си (линейная структура, программы разветвляющейся и циклической структуры, массивы), так и более сложные вопросы (структуры, функции, работа с файлами, работа с динамической памятью).

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

 


Общие положения

 

Содержание контрольной работы должно соответствовать программе курса «Основы программирования» по специальностям 051001 Профессиональное обучение (по отраслям) Программирование в компьютерных системах; 230115 Программирование в компьютерных системах.

Номер варианта работы определяется преподавателем. Как правило, этот номер соответствует номеру в журнале (на главной странице журнала). Например, номер в журнале — 13, то номер варианта в этом случае - 13.

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



Кроме того, преподаватель может указать для каждой задачи количество заданий, которые следует выполнять (все задачи содержат несколько заданий). Если это количество не указано, следует выполнять все задания. С помощью номера варианта, номеров тем, количества заданий в каждой теме и таблицы, приведенной в Приложении 1, определяется структура самостоятельной работы.

Например, если номер Вашего варианта 13 и преподаватель определил Вам 5 первых тем, в каждой задаче по теме - 2 задания, это значит, что Вы находите в таблице вариантов (Приложение 1) строку с номером 13 и начинаете выполнять задачи с номерами, приведенными в 13-ой строке таблицы. В частности, в теме 1 Вы должны выполнить задачу 5, в ней - два задания, в теме 2 - задачу 7, в ней - два задания и т. д. И так по всем пяти темам.

Сроки выполнения самостоятельной работы определяются преподавателем в соответствии с учебным планом конкретной специальности (специализации). Однако самостоятельной работа должна быть сдана не менее чем за 5 дней до начала сессии.

2 Технология выполнения и отчетность по самостоятельной работе

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

Отчет по самостоятельной работе состоит из листингов задач на изучаемом языке программирования с комментариями в виде файлов на диске (файлы размещаются в папке с фамилией студента).


Таблица вариантов

Таблица вариантов работы

 

Номера вариантов по списку журнала № варианта и темы
1/25
2/24
3/23
4/22
5/21
6/20
7/19
8/18
9/17
10/16
11/15
12/14
13/13
14/12
15/11
16/10
17/9
18/8
19/7
20/6
21/5
22/4
23/3
24/2
25/1
6/15
7/5
8/7
2/22
4/14
10/10
12/9
                           

 


СОДЕРЖАНИЕ

 

 

Введение ………………………………………………………………………………..………. 3

Тема №1. Программирование линейной структуры……………………………………..…….. 5

Тема № 2 Программы разветвленной структуры……..……………………………..…….….…8

Тема № 3 Программы разветвленной структуры……..………………………………….….…10

Тема № 4Программы циклической структуры……….……………………………………… 13

Тема № 5Обработка статических массивов…………………………………………………...18

Тема № 6Работа с символьными данными …………………………………………………….22

Тема № 7Функции ……………………………………………………………………………...25

Тема № 8Структуры….……………………………………………….......................….....…......29

Тема № 9Программные средства для работы с файлами…………………………………...…33

 


Тема №1

Программирование линейной структуры

 

ОСНОВНЫЕ СВЕДЕНИЯ

Чаще всего линейные алгоритмы используются для программирования вычислений по формулам. В этом случае удобно использовать набор стандартных функций Си, содержащихся в заголовочном файле math.h :

Sin (x) - sin x; cos (x) – cos x ; tan(x) - tg х ; log (x) - ln x; log10(x) – lg x; exp(x) - показательная функция ex ; sqrt (x)- корень квадратный от х; роw(x, y) – x в степени y; abs(x)- модуль x.; acos(x) – arccos x; asin(x) – arcsin x; atan(x)- arctg x; sinh(x)- sh x; cosh (x) – ch x; tanh(x)-th x.

Для тригонометрических функций аргумент х измеряется в радианах и имеет тип double, как и значения функций.

 

Пример программы линейной структуры:

Вычислить площадь и стороны прямоугольного треугольника, если известны гипотенуза c и угол x. Для вычислений воспользуемся формулами :

a=c×sin x; b=c×cos x; S=ab ;

Программа вычислений имеет вид:

 

// вычисление высот и площади треугольника

#include <stdio.h> //заголовочный файл для организации ввода-вывода

#include <math.h> //заголовочный файл математических функций

main() //главная функция

{ float a,b,c,x, S; //описание переменных вещественного типа

printf (“\n Введите гипотенузу и угол треугольника ”);

scanf (“%f%f “,&c,&x); // ввод значений вещественного типа

a=c*sin(x);

b=c*cos(x);

S=a*b;

printf (“\n Результаты: a=%7.2f b=%7.2f S=%7.2f “,a, b, S);

return 0;

}

Комментарий в программе не влияет на компиляцию программы, а служит для разъяснения действий основных блоков текста и программы в целом. Однострочный комментарий действует от двух символов // до конца строки. Многострочный комментарий заключается в пары символов /* и */.

Вторая строка программы #include <stdio.h> является директивой компилятора для включения заголовочного файла stdio.h , в котором содержатся средства ввода-вывода (связи с внешними устройствами), отсутствующие в самом языке Си. Третья строка - #include<math.h> является директивой компилятора для включения заголовочного файла math.h, обеспечивающего выполнение математических функций.

Программа на языке Си состоит из ряда функций, из которых функция main (главная) является обязательной и служит точкой входа в программу. В круглые скобки заключаются параметры функции, причем наличие круглых скобок обязательно, если даже список параметров пуст. В фигурные скобки заключаются составной оператор (несколько операторов). Для придания тексту программы наглядности открывающая и соответствующая ей закрывающая фигурные скобки печатаются на одном уровне, а заключенный между ними текст, сдвигается на 1-2 символа вправо, вложенный блок также сдвигается вправо и т.д. Образуется иерархия вложенных блоков, придающая программе на Си характерный вид.

В программе описаны переменные a, b, c, х, S вещественного типа (float). В отличие от других языков в Си учитывается регистр при определении имени переменной, т.е. s и S – разные переменные. Функции printf и scanf содержатся в заголовочном файле stdio.h и служат для вывода на экран и ввода с клавиатуры соответственно. Управляющие символы \n в функции printf служат для перевода на новую строку. Символ & в функции scanf указывает на адрес вводимой переменной. Ввод и вывод переменных вещественного типа производится в формате f. Признаком форматного вывода в функции printf является %. При выводе между знаком процента и форматной переменной f можно включить общую ширину поля вывода и число позиций после десятичной точки. Оператор return 0; служит для выхода из функции main в Интегрированную Среду, 0 является признаком успешного окончания программы. Завершает текст программы закрывающая фигурная скобка, означающая конец функции main.

 

СПИСОК ЗАДАЧ

1. Даны два ненулевых числа. Найти их сумму, разность, произведение и частное.

2. Даны стороны прямоугольника a и b. Найти его площадь S = a-b и периметр P = 2(a + b).

3. Дан диаметр окружности d. Найти ее длину L = П*d. В качестве значения П использовать 3.14.

4. Даны длины ребер a, b, c прямоугольного параллелепипеда. Найти его объем V = a-b-c и площадь поверхности S = 2-(a-b + b-c + a-c).

5. Найти длину окружности L и площадь круга S заданного радиуса R:

L = 2* П *R, S = П*R2. В качестве значения П использовать 3.14.

6. Даны катеты прямоугольного треугольника a и b. Найти его гипотенузу c и периметр P: c = √a2 + b2, P = a + b + c.

7. Найти среднее арифметическое и среднее геометрическое трёх заданных чисел.

8. Даны два круга с общим центром и радиусами R1 и R2 (R1 > R2). Найти площади этих кругов S1 и S2, а также площадь S3 кольца, внешний радиус которого равен R1, а внутренний радиус равен R2: S1=П(R1 )2, S2 = П(R2)2, S3 = S 1 - S2. В качестве значения П использовать 3.14.

9. Найти расстояние между двумя точками с заданными координатами (x 1 y1) и (x2, y2) на плоскости. Расстояние вычисляется по формуле √(x2-x1)2 + (y2-y1)2.

10. Найти значение функции y = Зх6 - 6х2 - 7 при данном значении х.

11. Дано значение температуры Т в градусах Фаренгейта. Определить значение этой же температуры в градусах Цельсия. Температура по Цельсию Тс и температура по Фаренгейту Тf связаны следующим соотношением: Тс = (Тf – 32)*5/9.

12. Даны два действительных числа a и b. Получить их сумму, разность и произведение.

13. Дано значение температуры Т в градусах Цельсия. Определить значение этой же температуры в градусах Фаренгейта. Температура по Цельсию Тс и температура по Фаренгейту Тf связаны следующим соотношением:

Тс = (Тf – 32)*5/9.

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

15. Известно, что X кг конфет стоит А рублей. Определить, сколько стоит 1 кг и Y кг этих же конфет.

16. Смешано V1 литров воды температуры t1 и V2 литров воды температуры t2. Найти объём и температуру образовавшейся смеси.

17. Известно, что X кг шоколадных конфет стоит А рублей, а Y кг ирисок стоит В рублей. Определить, сколько стоит 1 кг шоколадных конфет, 1 кг ирисок, а также во сколько раз шоколадные конфеты дороже ирисок.

18. Найти корни квадратного уравнения A*x2 + B-x + C = 0, заданного своими коэффициентами A, B, C (коэффициент A не равен 0), если известно, что дискриминант уравнения положителен. Вывести вначале меньший, а затем больший из найденных корней. Корни квадратного уравнения находятся по формуле Х1,2 = (-B ± √D)/(2*A), где D - дискриминант, равный B2 - 4AC.

19. Найти решение системы линейных уравнений вида

A1 *x + B1* y = C1

A2 * x + B 2 * y = C2,

заданной своими коэффициентами A1 B1 C1 A2, B2, C2, если известно, что данная система имеет единственное решение. Воспользоваться формулами

x = (C1B2 - C2B1)/D, y = (A1C2 - A2C1)/D, где D = A1B2 -A2*B1.

20. Найти сумму членов арифметической прогрессии по данным значениям: a, d, n.

21. Дано трехзначное число. Вывести число, полученное при перестановке цифр сотен и десятков исходного числа (например, 123 перейдет в 213).

22. Даны целые числа k, m, действительные числа x, y, z. При k<m2 или заменить модулем соответственно значения x, y или z, а два других уменьшить на 0.5.

23. Дано трехзначное число. Вывести число, полученное при перестановке цифр десятков и единиц исходного числа (например, 123 перейдет в 132).

24. Дано действительное число х. Получить целую часть х; затем число х, округлённое до ближайшего целого; затем число без дробных цифр.

25. Дано целое четырехзначное число. Используя операции div и mod, найти произведение его цифр.

 

 

Тема №2

Условный оператор IF

ОСНОВНЫЕ СВЕДЕНИЯ

Алгоритм разветвленной структуры - это алгоритм, в котором вычислительный процесс осуществляется по одной из ветвей. Если количество ветвей две – то используется условный блок, если больше – то множественный выбор. В программах используют соответственно условный оператор IF или оператор SWITCH для реализации разветвленного алгоритма.

 

Условный оператор IF

Условный оператор в языке Си имеет формат:

if (условие)

оператор1;

else

оператор2;

(полная форма) или

if (условие) оператор1; (сокращенная форма).

Если оператор1 и оператор2 состоят из одного оператора, то в фигурные скобки они не заключаются. Если оператор1 и/или оператор2 являются составным оператором (несколько операторов), то он заключается в фигурные скобки. Условие всегда заключается в круглые скобки.

В качестве примера приведем программу вычисления наибольшего из значений функции y1=x²+1, y2=7-x² , y3=x+1 для любого х.

 

#include <stdio.h>

main()

{ float x,y1,y2,y3,max;

printf("Введите x\n"); scanf(“%f “,&x);

y1=x*x+1; y2=7-x*x; y3=x+1;

if (y1>y2)

max=y1;

else

max=y2;

if (y3>max)

max=y3;

printf (“x=%8.2f y1=%8.2f y2=%8.2f y3=%8.2f max=%8.2f\n”,x,y1,y2,y3,max);

}

 

СПИСОК ЗАДАЧ

Составить программы разветвляющейся структуры согласно вариантам задания 1 (используя IF) и задания 2 (используя SWITCH) .

 

Варианты задания 1(используя IF)

  1. Даны действительные числа x,y. Получить:

а) max(x,y),

б) min(x,y),

в) max(x,y),min(x,y).

  1. Даны действительные числа x, y, z. Вычислить:

а) max(x + y + z, x · y · z),

б) min2 (x + y + z/2, x · y · z) + 1.

  1. Даны действительные числа a, b, c. Проверить выполняется ли неравенство a < b < c.
  2. Найти min значение из трёх величин, определяемых арифмети­ческими выражениями a = sin(x), b = cos(x), c = ln(x) при заданных значениях x.
  3. Даны действительные числа a, b, c. Удвоить эти числа, если
    a > b > c и заменить их абсолютными значениями, если это не так.
  4. Даны два действительных числа. Заменить первое число нулём, если оно меньше или равно второму, и оставить числа без изменения иначе.
  5. Даны действительные числа x,y. Меньшее из этих двух чисел заменить их полусуммой, а большее – их удвоенным произведением.
  6. Даны действительные числа a, b, c, d. Если a < b < c < d, то каждое число заменить наибольшим из них; если a > b > c > d, то числа оставить без изменения; иначе все числа заменяются их квадратами.
  7. Даны действительные числа a, b, c. Выяснить, имеет ли уравнение ax2+bx+c=0 действительные корни. Если действительные корни имеются, то найти их. В противном случае ответом должно служить сообщение, что действительных корней нет.
  8. Даны действительные положительные числа a, b, c, x, y. Выяснить, прой­дёт ли кирпич с рёбрами a, b, c в прямоугольное отверстие со сторонами x и y. Просовывать кирпич в отверстие разрешается только так, чтобы каждое из рёбер было параллельно или перпендикулярно каждой из сторон отверстия.
  9. Даны два действительных числа. Вывести первое число, если оно больше второго, и оба числа если это не так.
  10. Даны три действительных числа. Выбрать из них те, которые принадлежат интервалу (1,3).
  11. Даны три действительных числа. Возвести в квадрат те из них, значения которых не отрицательны.
  12. Если сумма трёх попарно различных действительных чисел x,y,z меньше единицы, то наименьшее из этих трёх чисел заменить полусуммой двух других; иначе заменить меньшее из x и y полусуммой двух оставшихся значений.
  13. Даны два числа. Если первое число больше второго по абсолютной величине, то необходимо уменьшить первое в 5 раз, иначе оставить числа без изменения.
  14. Даны три переменные вещественного типа: A, B, C. Если их значения упорядочены по возрастанию или убыванию, то удвоить их; в против­ном случае заменить значение каждой переменной на противоположное. Вывести новые значения переменных A, B, C.
  15. Для данного вещественного х,найти значение следующей функции f принимающей вещественные значения:

f(x) = 2sin(x), если х>0,

6 - х, если х <0.

  1. Для данного вещественного хнайти значение следующей функции f принимающей вещественные значения:

-х, если х <0,

f(x) = х2, если0<х<2,

4, если х >2.

  1. Даны три целых числа. Возвести в квадрат отрицательные числа и в третью степень — положительные (число 0 не изменять). Определить, является ли целое число чётным.
  2. Определить, верно ли, что при делении неотрицательного целого числа а на положительное целое число b, получается остаток равный одному из двух заданных чисел r или s.
  3. Даны две переменные целого типа: A и B. Если их значения не равны, то присвоить каждой переменной сумму этих значений, а если равны, то присвоить переменным нулевые значения. Вывести новые значения переменных A и B.
  4. Даны три переменные вещественного типа: A, B, C. Если их значения упорядочены по возрастанию, то удвоить их; в противном случае заме­нить значение каждой переменной на противоположное. Вывести новые значения переменных A, B, C.
  5. В школу танцев принимаются юноши и девушки, имеющие рост не ниже 168 см и не выше 178 см. Их вес должен соотноситься с ростом по формуле: ВЕС <= РОСТ – 115. Определите будет ли принят поступающий в школу.
  6. Написать программу, которая требует ввода времени дня и, в зависимости от введенного значения, желает доброго утра, доброго дня, доброго вечера или спокойной ночи.
  7. Определить кратно ли четырехзначное натуральное число N числу 3. Использовать при этом следующее свойство: если сумма цифр числа кратна 3, то и число кратно 3.

 

Тема №3

Множественный выбор

ОСНОВНЫЕ СВЕДЕНИЯ

Алгоритм разветвленной структуры - это алгоритм, в котором вычислительный процесс осуществляется по одной из ветвей. Если количество ветвей две – то используется условный блок, если больше – то множественный выбор. В программах используют соответственно условный оператор IF или оператор SWITCH для реализации разветвленного алгоритма.

 

Множественный выбор

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

Switch (выражение)

{ case метка_1: список_операторов_1;

……………………………………….

case метка_n: список_операторов_n;

default : операторы; }

Значения выражения и меток должны быть целочисленными константами.

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

 

// множественный выбор

#include<stdio.h>

#include<conio.h> // Заголовочный файл для работы с терминалом

int m;

main()

{

printf("\n Введите номер месяца :"); scanf("%d",&m);

printf("\n В %4d месяце дней: ",m);

 

switch(m){

case 1:case 3:case 5: case 7:case 8:case 10:case 12:printf("тридцать один\n");break;

case 2: printf ("двадцать восемь \n");break;

case 4: case 6: case 9: case 11: printf("тридцать\n");break;

default: printf("\n Номер месяца неверен \n");}

getch (); }

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

Функция getch, подключающаяся заголовочным файлом conio.h, ожидает нажатия любой клавиши. Это позволяет просмотреть результаты, не используя ALT+F5 для просмотра экрана пользователя.

 

СПИСОК ЗАДАЧ

  1. Дан номер месяца (1 — январь, 2 — февраль, ...). Вывести название соответствующего времени года ("зима", "весна" и т.д.).
  2. Дан номер месяца (1 — январь, 2 — февраль, ...). Вывести число дней в этом месяце для невисокосного года.
  3. Дано целое число в диапазоне 0 – 9. Вывести строку — название соответствующей цифры на русском языке (0 — "ноль", 1 — "один", 2 — "два", ...).
  4. Дано целое число в диапазоне 1 – 5. Вывести строку — словесное описание соответствующей оценки (1 — "плохо", 2 — "неудовлетворительно", 3 — "удовлетворительно", 4 — "хорошо", 5 — "отлично").
  5. Арифметические действия над числами пронумерованы следующим образом: 1 — сложение, 2 — вычитание, 3 — умножение, 4 — деление. Дан номер действия и два числа A и B (В не равно нулю). Выполнить над числами указанное действие и вывести результат.
  6. Единицы длины пронумерованы следующим образом: 1 — дециметр, 2 — километр, 3 — метр, 4 — миллиметр, 5 — сантиметр. Дан номер единицы длины и длина отрезка L в этих единицах (вещественное число). Вывести длину данного отрезка в метрах.
  7. Единицы массы пронумерованы следующим образом: 1 — килограмм, 2 — миллиграмм, 3 — грамм, 4 — тонна, 5 — центнер. Дан номер единицы массы и масса тела M в этих единицах (вещественное число). Вывести массу данного тела в килограммах.
  8. Робот может перемещаться в четырех направлениях ("С" — север, "З" — запад, "Ю" — юг, "В" — восток) и принимать три цифровые команды: 0 — продолжать движение, 1 — поворот налево, –1 — поворот направо. Дан символ C — исходное направление робота и число N — посланная ему команда. Вывести направление робота после выполнения полученной команды.
  9. Локатор ориентирован на одну из сторон света ("С" — север, "З" — запад, "Ю" — юг, "В" — восток) и может принимать три цифровые команды: 1 — поворот налево, –1 — поворот направо, 2 — поворот на 180 градусов. Дан символ C — исходная ориентация локатора и числа N1 и N2 — две посланные ему команды. Вывести ориентацию локатора после выполнения данных команд.
  10. Элементы окружности пронумерованы следующим образом: 1 — радиус (R), 2 — диаметр (D), 3 — длина (L), 4 — площадь круга (S). Дан номер одного из этих элементов и его значение. Вывести значения остальных элементов данной окружности (в том же порядке). В качестве значения Pi использовать 3.14.
  11. Элементы равнобедренного прямоугольного треугольника пронумерованы следующим образом: 1 — катет (a), 2 — гипотенуза (c), 3 — высота, опущенная на гипотенузу (h), 4 — площадь (S). Дан номер одного из этих элементов и его значение. Вывести значения остальных элементов данного треугольника (в том же порядке).
  12. Элементы равностороннего треугольника пронумерованы следующим образом: 1 — сторона (a), 2 — радиус вписанной окружности (R1), 3 — радиус описанной окружности (R2), 4 — площадь (S). Дан номер одного из этих элементов и его значение. Вывести значения остальных элементов данного треугольника (в том же порядке).
  13. Даны два целых числа: D (день) и M (месяц), определяющие правильную дату невисокосного года. Вывести значения D и M для даты, предшествующей указанной.
  14. Даны два целых числа: D (день) и M (месяц), определяющие правильную дату невисокосного года. Вывести значения D и M для даты, следующей за указанной.
  15. Дано целое число в диапазоне 20 – 69, определяющее возраст (в годах). Вывести строку — словесное описание указанного возраста, обеспечив правильное согласование числа со словом "год", например: 20 — "двадцать лет", 32 — "тридцать два года", 41 — "сорок один год".
  16. Дано целое число в диапазоне 100 – 999. Вывести строку — словесное описание данного числа, например: 256 — "двести пятьдесят шесть", 814 — "восемьсот четырнадцать".
  17. В восточном календаре принят 60-летний цикл, состоящий из 12-летних подциклов, обозначаемых названиями цвета: зеленый, красный, желтый, белый и черный. В каждом подцикле годы носят названия животных: крысы, коровы, тигра, зайца, дракона, змеи, лошади, овцы, обезьяны, курицы, собаки и свиньи. По номеру года вывести его название, если 1984 год был началом цикла — годом зеленой крысы.
  18. Дан номер года (положительное целое число). Определить количество дней в этом году, учитывая, что обычный год насчитывает 365 дней, а високосный - 366 дней. Високосным считается год, делящийся на 4, за исключением тех годов, которые делятся на 100 и не делятся на 400 (например, годы 300, 1300 и 1900 не являются високосными, а 1200 и 2000 - являются).
  19. Дано целое число. Вывести его строку-описание вида «отрицательное четное число», «нулевое число», «положительное нечетное число» и т. д.
  20. Дано целое число, лежащее в диапазоне 1-999. Вывести его строку-описание вида «четное двузначное число», «нечетное трехзначное число» и т.д.
  21. Дано целое число K. Вывести строку-описание оценки, соответствующей числу K (1 — «плохо», 2 — «неудовлетворительно», 3 — «удовлетворительно», 4 — «хорошо», 5 — «отлично»). Если K не лежит в диапазоне 1–5, то вывести строку «ошибка».
  22. Элементы окружности пронумерованы следующим образом: 1 — радиус R, 2 — диаметр D = 2 R, 3 — длина L = 2 Pi R, 4 — площадь круга S = Pi R2. Дан номер одного из этих элементов и его значение. Вывести значения остальных элементов данной окружности (в том же порядке). В качестве значения Pi использовать 3.14.
  23. Мастям игральных карт присвоены порядковые номера: 1 — пики, 2 - трефы, 3 - бубны, 4 - червы. Достоинству карт, старших десятки, присвоены номера: 11 — валет, 12 — дама, 13 — король, 14 — туз. Даны два целых числа: N — достоинство (6 < N < 14) и М — масть карты (1 < М < 4). Вывести название соответствующей карты вида «шестерка бубен», «дама червей», «туз треф» и т. п.
  24. Дано целое число в диапазоне 20-69, определяющее возраст (в годах). Вывести строку-описание указанного возраста, обеспечив правильное согласование числа со словом «год», например: 20 — «двадцать лет», 32 — «тридцать два года», 41 — «сорок один год».
  25. Даны два целых числа: D (день) и M (месяц), определяющие правильную дату. Вывести знак Зодиака, соответствующий этой дате: «Водолей» (20.1–18.2), «Рыбы» (19.2–20.3), «Овен» (21.3–19.4), «Телец» (20.4– 20.5), «Близнецы» (21.5–21.6), «Рак» (22.6–22.7), «Лев» (23.7–22.8), «Дева» (23.8–22.9), «Весы» (23.9–22.10), «Скорпион» (23.10–22.11), «Стрелец» (23.11–21.12), «Козерог» (22.12–19.1).

Тема №4

ОСНОВНЫЕ СВЕДЕНИЯ

Операторы циклов

В языке Си существует 3 вида циклов: 1) цикл с параметром или цикл типа for; 2) цикл с предусловием или цикл типа while, 3) цикл с постусловием или цикл типа do ... while. Во всех этих циклах условие продолжения цикла заключается в круглые скобки. В циклах типов for и while повторяющаяся часть состоит из одного оператора, если требуется выполнить в цикле несколько операторов, они заключаются в фигурные скобки, образуя составной оператор. В цикле с постусловием тело цикла помещается между словами do и while. В отличие от цикла с предусловием, цикл с постусловием выполнится хотя бы один раз. Циклы с пред- и постусловием продолжаются, если условие продолжения истинно.

 

Цикл с параметром

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

А) начальные значения: операторы присваивания, которые выполняются один раз перед выполнением цикла;

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

С)действия в конце каждого шагацикла (в большинстве случаев это операторы присваивания).

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

Примеры заголовков:

for ( i = 0; i < 10; i ++ ) { ... }

for ( i = 0, x = 1.; i < 10; i += 2, x *= 0.1 ){ ... }

• Тело цикла заключается в фигурные скобки; если в теле цикла стоит всего один оператор, скобки можно не ставить.

• В тело цикла могут входить любые другие операторы, в том числе и другие циклы (такой прием называется «вложенные циклы»).

• Для того, чтобы легче разобраться в программе, все тело цикла и ограничивающие его скобки сдвигаются вправо на 2-3 символа (запись «лесенкой»).

 

Пример вычисления суммы квадратов натурального ряда чисел от 1 до n.

S= = 12 + 2 2 + . . . + n 2.

 

//lab3_1 сумма квадратов натурального ряда

#include <stdio.h>

main()

{ int S,n,i;

printf(“Введите n ”); scanf(“%d”,&n);

for (S=0, i=1; i<=n; i++)

S+=i*i; // соответствует S=S+i*i

printf (“n=%d S=%d”,n,S);

}

В разделе инициализации присваиваются начальные значения переменным S и i. При i, не превышающем n, цикл повторяется, иначе выполняется выход из цикла. Оператор инкремента i++ (или декремента i--), эквивалентен i=i +1 (i=i-1). Для досрочного выхода из цикла и перехода на следующий оператор после цикла используется оператор break. Для пропуска всех операторов, оставшихся до конца тела цикла и перехода к следующему повторению цикла используется оператор continue.

 

СПИСОК ЗАДАЧ

Тема №5

ОСНОВНЫЕ СВЕДЕНИЯ

Массивы - структурированный тип данных с элементами одного и того же типа, имеющий одно имя и определенное количество элементов. Количество элементов определяет размер массива. Порядковый номер элемента массива называется его индексом. Число индексов называется размерностью массива, например, массив с двумя индексами называется двумерным массивом. Строка символов является массивом символов, вектор – массив чисел, матрица – массив векторов. Обработка массивов выполняется следующим образом: объявление, ввод или инициализация элементов массива, преобразование и вывод.

Объявление массива

Чтобы использовать массив, надо его объявить – выделить место в памяти компьютера, объём которой зависит от количества элементов и типа массива. Тип массива - это тип входящих в него элементов. Массивы могут быть разных типов: — int, float, char, и т.д.

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

int A[10], B[20]; // 2 массива по 10 и 20 целых чисел

float C[12]; // массив из 12 вещественных чисел

При объявлении массива можно сразу заполнить его начальными значениями, перечисляя их внутри фигурных скобок:

int A[4] = { 2, 3, 12, 76 };

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

int A[4] = { 2 }; // последние три элемента равны 0

Для повышения универсальности программы размер массива лучше определять через константу. В этом случае для переделки программы для массива другого размера надо только поменять значение этой константы:

const int N = 20; //N - константа

main()

{

int A[N]; // размер массива задан через константу

...

}

 

СПИСОК ЗАДАЧ

1. Даны натуральные числа n, A1, ..., An. Определить количество членов Ak последовательности A1, ..., An:

а) являющихся нечётными числами;

б) кратных 3 и некратных 5;

в) являющихся квадратами чётных чисел;

2. Даны натуральные числа n, A1, ..., An. Найти те элементы Ak последовательности n, A1, ..., An, которые:

а) являются удвоенными нечётными числами;

б) при делении на 7 дают остаток 1,2 или 5;

3. Даны целые числа А1,..., А20. Получить сумму членов данной последовательности, которые:

а) кратны 5;

б) нечётны и отрицательны.

 

4. Даны натуральное число n, целые числа A1, ..., An. Найти количество и сумму тех членов последовательности, которые делятся на 5 и не делятся на 7.

5. Даны целые числа p, q, A1,...,A17 (p>q>0). В последовательности заменить нулями элементы, модуль которых при делении на p даёт в остатке q.

6. Даны натуральные числа n, p, целые числа A1, ..., An. Получить произведение элементов последовательности, кратных p.

7. Даны натуральное число n, действительные числа A1, ..., An. В последовательности получить удвоенную сумму всех положительных элементов.

8. Даны натуральное число n, действительные числа A1, ..., An. В последовательности все отрицательные числа увеличить на 0.5, а все неотрицательные на 0.1.

9. Даны натуральное число n, действительные числа A1, ..., An. В последовательности все элементы, меньше 2, заменить нулями. Кроме того, получить сумму элементов, принадлежащих отрезку [3,7], а также число таких элементов.

10. Даны натуральное число n, действительные числа A1, ..., An. В последовательности все неотрицательные элементы, не принадлежащие отрезку [1,2], заменить на 1. Кроме того, получить число отрицательных элементов и число элементов, принадлежащих отрезку [1,2].

11. Даны натуральное число n, целые числа A1, ..., An. Получить сумму положительных и число отрицательных элементов последовательности.

12. Даны натуральное число n, целые числа A1, ..., An. Заменить все, большие 7, элементы последовательности числом 7. Вычислить количество таких элементов.









Не нашли то, что искали? Воспользуйтесь поиском гугл на сайте:


©2015- 2019 zdamsam.ru Размещенные материалы защищены законодательством РФ.