Составление программ и алгоритмизация задач по дисциплине 'Объектно-ориентированное программирование'
Министерство образования и науки
Украины
Криворожский институт
ЧВУЗ «Кременчугский университет
экономики, информационных технологий и управления»
Факультет - инженерный
Кафедра технической кибернетики
Специальность 7.0901402 «Гибкие
компьютеризированные системы и робототехника»
МЕТОДИЧЕСКИЕ УКАЗАНИЯ
к выполнению лабораторных работ
по дисциплине
«Объектно-ориентированное
программирование»
для студентов дневной и заочной форм
обучения
Кривой Рог 2008
СОДЕРЖАНИЕ
ВВЕДЕНИЕ
Лабораторная работа №1
Лабораторная работа № 2
Лабораторная работа №3
Лабораторная работа №4
Лабораторная работа №5
ЛИТЕРАТУРА
ВВЕДЕНИЕ
Лабораторные работы по дисциплине “Объектно-ориентированное
программирование” выполняются студентами 2 курса специальности “Гибкие компьютеризованные
системы и робототехника” дневной и заочной учебы.
Основная цель лабораторного практикума - закрепить знания, полученные на
лекционных, практических занятиях и в результате самостоятельной работы.
Студенты развивают навыки составления программ и алгоритмизации задач,
осваивают приемы отладки программ.
Язык программирования BC является частью программной среды Borland C++,
которая включает в себя не только соответствующий компилятор, но и текстовый
редактор, компоновщик, загрузчик, отладчик и другие средства, что убыстряет
процесс создания программы. Кроме того, возможности языка BC расширяются
дополнительными программными средствами - модулями. Потому владение приемами
работы в среде Borland C++ является крайне необходимым.
Система Borland C++, как одно из средств автоматизации программирования,
является составной частью операционной системы MS DOS или Windows определенной
версии. Потому студентам необходимо знать особенности файловой системы, владеть
средствами работы с файлами и каталогами (папками) собственно операционной
системы или оболочки Norton Commander.
ОБЩИЕ
СВЕДЕНИЯ
Структура
программы <file:///D:\Documents\CD_RW\Disk_OOP\GL3.htm>
Программа
состоит из одной или более функций, причем какая-нибудь из них (главная)
обязательно должна называться main( ). Описание функции состоит из заголовка и
тела. Заголовок состоит из директив препроцессора типа #include и имени
функции.
В
разделе мы указываем, какие файлы мы будем использовать в качестве библиотек.
Например:
#include
<stdio.h>
Эта
строка указывает компилятору, что нужно включить информацию, содержащуюся в
файле stdio.h.
Отличительным
признаком имени функции служат круглые скобки, а аргумент может и
отсутствовать. Тело функции заключено в фигурные скобки и представляет собой
набор операторов, каждый из которых оканчивается символом "точка с
запятой".
В
простейшем случае программа представляет собой одну единственную функцию main.
Если функция main получает параметры и возвращает результат, то она
объявляется так:
int main(int argc) { /*
операторы*/
}
return(значение);
Если
функция main не получает параметры и не возвращает результат, то
она объявляется так:
void main()
{
/* операторы*/
}
Комментарии
в программе либо оформляются следующим образом:
/*
комментарий*/ или // комментарий.
Основные
типы данных <file:///D:\Documents\CD_RW\Disk_OOP\GL3.htm>
К
основным типам данных языка C/C++ относятся:
· целые числа (int, short int, long и др.);
· дробные (действительные) числа (float, double и др.);
· символы (char);
· логические bool.
Переменные могут быть объявлены в любом месте программы до их
использования.
Например, объявляем целочисленные переменные: int a,b;
Строка в С++ это массив символов. Объявление: char Имя [Длина];
Объявим строковую переменную (массив) st, состоящую из 15 символов: char st[15];
Константы также могут быть объявлены в любом месте программы следующим
образом: const n=7;
Арифметические операции
В С++ определены все четыре арифметических операции над числовыми
переменными:
+ - сложение; - вычитание; * - умножение; / - деление вещественное;
Кроме этого для данных типа int предусмотрена операция % - получение остатка от целочисленного деления.
Например: 5 % 2=1
Инструкция
присваивания <file:///D:\Documents\CD_RW\Disk_OOP\GL3.htm>
Переменную
можно изменять при помощи операции присваивания. В языке С++ она обозначается
знаком равенства.
Например:
x = 12;
В
С++ поддерживается сокращенная форма записи:
Инструкция
|
Соответствующая "обычная"инструкция присваивания
|
х + +
|
x = x + 1
|
х--
|
x = x - 1
|
х += у
|
x = x + у
|
x - =у
|
х = х - у
|
х *= у
|
х = х*у
|
х %= у
|
x = x % у
|
Функции
ввода-вывода <file:///D:\Documents\CD_RW\Disk_OOP\GL3.htm>
Функция
printf выводит на экран значения переменных либо строку символов, заключенных в
двойные кавычки.
Синтаксис: printf(Формат,
СписокПеременых);
Формат
вывода задается в строке форматирования, которая помимо спецификатора формата
может содержать текст и управляющие символы. Значение первой переменной
выводится в соответствии с первым спецификатором формата, второй - со вторым, и
т. д.Спецификаторы формата (необязательный параметр n задает ширину
поля вывода).
Спецификатор
|
Форма вывода
|
%ni %nd
|
Десятичное число со знаком
|
%nu
|
Беззнаковое целое десятичное число
|
%n.mf
|
Дробное число с десятичной точкой. Необязательный параметр
m задает количество цифр дробной части
|
%ne
|
Дробное число с десятичной точкой или, если число не может
быть представлено в форме с десятичной точкой, в экспоненциальной форме
|
%ns
|
Строка символов
|
%nc
|
Символ
|
Управляющий символ \ n переводит курсор в начало следующей строки
Например, вывести значения целочисленной переменной а и дробной x (с точностью до 2-го знака после
запятой) с переводом курсора на следующую строку.
printf(“a=%d x=%5.2%\n”,a,x);
Заголовочный файл: <stdio.h>
Функция scanf вводит с
клавиатуры значения переменных, в соответствии с указанным спецификатором
формата. Первая переменная получает значение в соответствии с первым
спецификатором формата, вторая - со вторым и т. д.
Синтаксис:
scanf(Формат, СписокАдресовПеременных);
В качестве параметра функции scanf должны передаваться адреса переменных,
а не их имена.
Спецификатор
|
Вводит
|
%i %d
|
Десятичное число со знаком
|
%u
|
Беззнаковое целое десятичное число
|
%f %e
|
Дробное число
|
%s
|
Строка символов
|
%c
|
Символ
|
Например, ввести значения целочисленной переменной а и дробной x:
scanf(“%d %f”,&a,&x);
Заголовочный файл: <stdio.h>
Функция getch возвращает код символа нажатой
клавиши. Функция getch не выводит
на экран символ, соответствующий нажатой клавише.
Например:
getch()
; //ожидание нажатия любой клавиши
Заголовочный файл: <conio.h>
ЛАБОРАТОРНАЯ
РАБОТА №1
Тема: Использование математических функций
Математические функции содержатся в модуле math.h. Поэтому для того,
чтобы их использовать необходимо подключить его в разделе #include.
Математические функции
abs(x), fabs(x)
|
Возвращает целое (abs) или дробное (fabs) абсолютное
значение аргумента, в качестве которого можно использовать выражение
соответствующего типа.
|
acos(x), asin(x), atan(x)
|
Возвращает выраженную в радианах величину угла, косинус,
синус или тангенс которого передан соответствующей функции в качестве
аргумента. Аргумент функции должен находиться в диапазоне от -1 до 1.
|
sin(x), cos(x), tan(x)
|
Возвращает синус, косинус или тангенс угла. Величина угла
должна быть задана в радианах.
|
exp(x)
|
Экспонента -
|
sqrt(x)
|
Корень квадратный аргумента -
|
pow(x,y)
|
Возведение в степень. Возвращает значение
|
log(x)
|
Логарифм натуральный аргумента
|
log10(x)
|
Десятичный логарифм
|
Пример выражения:
В
С++ это выражение будет выглядеть так
0.3*pow((pow(sin(x),2)-pow(cos(x),2)/exp(x),5)
Задача 1
Вычислить значение функции (значения переменных принимать самостоятельно)
#include <stdio.h>
#include <conio>
#include <math.h>main ()
{
float
x,y,z; //описываем переменные
printf("x=");
scanf("%f",&x);("y=");
scanf("%f",&y);=sqrt(fabs(sin(x)+cos(y)))/pow(sin(x)/cos(y),2)*log(fabs(x));("%5.3f",z); //выводим
значение дробной переменной z с
точностью
до 3 знаков после запятой
getch();
}
№ вар
|
Задание
|
№ вар
|
Задание
|
1
|
16
|
|
|
2
|
17
|
|
|
3
|
18
|
|
|
4
|
19
|
|
|
5
|
20
|
|
|
6
|
21
|
|
|
7
|
22
|
|
|
8
|
23
|
|
|
9
|
24
|
|
|
10
|
25
|
|
|
11
|
26
|
|
|
12
|
27
|
|
|
13
|
28
|
|
|
14
|
29
|
|
|
15
|
30
|
|
|
ЛАБОРАТОРНАЯ
РАБОТА №2
Тема: Условный оператор IF.Операторы
сравнения и логические функции. Оператор SWITCH
Операторы IF -условный
оператор и SWITCH - оператор выбора варианта служат
для организации разветвляющихся алгоритмов. Они позволяют выбрать для
выполнения один из простых или составных операторов или не выбрать ни одного в
зависимости от условия разветвления.
Условный оператор IF
имеет следующую форму:
IF(B) S1; ELSE S;
Где B - логическое выражение (условие
разветвления);
S1 - операторы,
выполняемые в случае, если логическое выражение верно
S2 -
операторы, выполняемые в случае, если логическое выражение неверно
Таким образом, с помощью оператора IF можно выбрать один из двух альтернативных вариантов процесса
вычислений. Условные операторы могут быть вложенными, т.е. после ELSE может стоять другой IF.
В логических выражениях используют следующие операторы сравнения:
== (два знака равенства) - равно;
!= - не равно. Остальные операции стандартны: >,>=, <,<=
Если условий несколько, то можно применять логические операции:
&&(И), ||(ИЛИ), !(НЕ). Например:
IF (A>B && B>0)
- т.е. если одновременно выполняются два условия (А>B и B>0)
! - это операция логического отрицания.
Например:
IF ! (A==B) ... - если А не равно В
Задача 2а
Вычислите значение функции в зависимости от заданного условия.
#include <stdio.h>
#include
<conio>
#include <math.h>main ()
{a,b,y;("a=");
scanf("%f",&a);("b=");
scanf("%f",&b);(a>b) y=a/b+2; else if (a==b) y=-71; else y=(a-5)/a;
printf("%5.3f",y);();
}
Оператор SWITCH используют
для разветвления программы по нескольким направлениям. Он имеет следующую
структуру:
switch(e)
{
case c1:s1; break;
case c2:s2; break;ck:sk; break;:s;
}
Где: е- значение целочисленной переменной;
с1, с2,сk - значения, которые она принимает;
s1,s2,sk - операторы, которые выполняются, если переменная е
принимает соответствующее значение. Если операторов несколько, они заключаются
в операторные скобки {}
Если значение переменной e не
равно ни одному из указанных, выполняются операторы, которые идут после default.
Задача 2б
Составить программу, которая запрашивает порядковый номер месяца и
выводит его название на экран.
#include <stdio.h>
#include <conio.h> main()
{
printf("Введите
номер месяца -");
int mes; scanf("%d",&mes);(mes)
{1,2,12:printf("зима");
break;3,4,5:printf("весна"); break;6,7,8:printf("лето");
break;9,10,11:printf("осень"); break;:printf("некорректный
ввод!!!");
}
getch();
}
Задание выбирается по последней цифре номера варианта
№ вар
|
Задание
|
№ вар
|
Задание
|
1
|
Составить программу, которая запрашивает порядковый номер
дня недели и выводит его название на экран.
|
6
|
Составить программу, которая выводит название цветов
радуги, запрашивая порядковый номер цвета.
|
2
|
Составить программу, которая возвращает прописью введенное
число в диапазоне от 0 до 10
|
7
|
Составить программу, которая переводит арабские числа в
римские в диапазоне от 1 до 10.
|
3
|
Составить программу, которая запрашивает порядковый номер
месяца и выводит его название на экран.
|
8
|
Составить программу, которая переводит числа из десятичной
системы в шестнадцатеричную в диапазоне от 1 до 16.
|
4
|
Составить программу, которая будет дописывать слово «рубль»
в правильной форме после введенного числа в диапазоне (1..20)
|
9
|
Составить программу, которая будет дописывать слово «часов»
в правильной форме после введенного значения в диапазоне (1..24)
|
5
|
Составить программу, которая запрашивает порядковый номер
знака зодиака (начиная с Рыбы) и выводит его название на экран.
|
10
|
Составить программу, которая запрашивает год (в диапазоне
от 1976 до 2008) и выводит название года по китайскому календарю (год Дракона
и т.д).
|
ЛАБОРАТОРНАЯ
РАБОТА №3
Тема: Циклы. Реализация циклического
процесса. Инструкции FOR, WHILE, DO WHILE
Циклы используют в случае, если некоторые действия надо выполнить
многократно, каждый раз с новыми данными. Инструкции цикла определяют действия,
которые надо выполнить многократно, и количество их повторений. К инструкциям
цикла относят операторы FOR, WHILE и DO WHILE.
FOR -
инструкция цикла, которая используется, если количество повторений тела цикла
известно до начала его выполнения. Форма записи оператора такова:
for(Инициализация; УсловиеВыполнения; Изменение)
{инструкции цикла (тело цикла) - один или несколько операторов,
заключенных в операторные скобки}
Инициализация - инструкция инициализации счетчика циклов.
УсловиеВыполнения - выражение, значение которого определяет условие
выполнения инструкций цикла. Инструкции цикла выполняются до тех пор, пока УсловиеВыполнения
истинно.
Изменение - инструкция изменения параметра цикла. Как правило, эта
инструкция изменяет значение переменной, которая входит В УсловиеВыполнения.
Например, переменная i
изменяется от начального значения 1 до конечного 5 с шагом 1:
for(i=1;i<=5;i++)
{}
Задача 3а
Вычислить сумму (произведение):
#include
<stdio.h>
#include <conio>
#include <math.h>main ()
{x,y=1; int n;("x="); scanf("%f",&x); (n=2;n<=5;n++)// переменная I изменяется от 2 до 5 с шагом 1
y*=exp(-x)*log(x)*tan(x);("%5.10f",y);();
}
№ вар
|
Задание
|
№ вар
|
Задание
|
1
|
16
|
|
|
2
|
17
|
|
|
3
|
18
|
|
|
4
|
19
|
|
|
5
|
20
|
|
|
6
|
21
|
|
|
7
|
22
|
|
|
8
|
23
|
|
|
9
|
24
|
|
|
10
|
25
|
|
|
11
|
26
|
|
|
12
|
27
|
|
|
13
|
28
|
|
|
14
|
29
|
|
|
15
|
30
|
|
|
Инструкция цикла WHILE
носит название цикла с предусловием, так как анализ конца цикла производится до
выполнения операторов тела цикла. Она используется, когда количество повторений
операторов цикла заранее неизвестно и определяется в процессе выполнения цикла.
При определенных условиях цикл не выполняется ни разу.
Синтаксис:
while(УсловиеВыполнения)
{Инструкции цикла (тело цикла)}
Сначала проверяется значение выражения УсловиеВылолнёния. Если. условие
истинно, то выполняются инструкции цикла (тело цикла). Затем снова проверяется
значение выражения УсловиеВыполнения, и если оно истинно, инструкции цикла
выполняются еще раз. И так до тех пор, пока значение выражения УсловиеВылолнения
не станет неверным.
Задача №3b
Вычислить таблицу значений функций для значений аргумента x, который изменяется от xn до xk с шагом dx
#include <stdio.h>
#include <conio.h>
#include <math.h>main()
{xn,xk,dx,x,y;("xn=");
scanf("%f",&xn);("xk=");
scanf("%f",&xk);("dx="); scanf("%f",&dx);=xn; //присваиваем переменной x начальное
значение
while (x<=xk)
{=pow(tan(x/2),2)*exp(-2*x)*log(fabs(x));("x=%1.1f
y=%f\n",x,y);+=dx;
//значение x возрастает на величину шага
}();
}
№ вар
|
Задание
|
Задание
|
1
|
16
|
|
|
2
|
17
|
|
|
3
|
18
|
|
|
4
|
19
|
|
|
5
|
20
|
|
|
6
|
21
|
|
|
7
|
22
|
|
|
8
|
23
|
|
|
9
|
24
|
|
|
10
|
25
|
|
|
11
|
26
|
|
|
12
|
27
|
|
|
13
|
28
|
|
|
14
|
29
|
|
|
15
|
30
|
|
|
Цикл с постусловием do while имеет следующий синтаксис:
do{операторы цикла} while(e);
Цикл выполняется до тех пор, пока выражение e имеет значение
"истина". В отличие от цикла while , в котором проверка условия
окончания цикла делается до выполнения тела цикла, в цикле do такая проверка
имеет место после выполнения тела цикла. Следовательно, тело цикла do будет
выполнено хотя бы один раз, даже если выражение e имеет значение
"ложь" c самого начала. Цикл do аналогичен циклу repeat в языке
Паскаль, отличаясь от него лишь тем, что цикл repeat выполняется до тех пор,
пока некоторое условие выхода из цикла не становится истинным, а цикл do выполняется
все время, пока некоторое условие остается истинным!
Задача №3с
Обеспечить ввод с клавиатуры последовательности из целых чисел (диапазон
-100…100, конец серии - ввод числа вне диапазона). После окончания ввода
программа должна вывести значение наибольшего по модулю числа.
#include <stdio.h>
#include <conio.h>
#include <math.h>main()
{x,max=0;
{ printf("x=");
scanf("%d",&x);(x>=-100 && x<=100 &&
max<abs(x)) max=x;
}(x>=-100 && x<=100);("max=%d",max);
getch();
}
Еще один пример:
Обеспечить ввод с клавиатуры последовательности из целых чисел
(диапазон от -20 до 10, конец серии - ввод нуля). После окончания ввода
программа должна вывести количество положительных и четных чисел
Для определения кратности числа можно воспользоваться операцией %, которая возвращает остаток от
целочисленного деления. Эта операция применима только к переменным целого типа
(int). Например, 5%2==1, 4%2== 0
#include <stdio.h>
#include <conio.h>
#include <math.h>main()
{x,k;
{ printf("x=");
scanf("%d",&x);(x<=10 && x>0 && x%2==0)
k++;
}(x!=0);("k=%d",k);();
}
№ вар
|
Задание
|
№ вар
|
Задание
|
1
|
Обеспечить ввод с клавиатуры последовательности из целых
чисел (диапазон -8…18, конец серии - после ввода нуля). После окончания ввода
программа должна вывести значение наименьшего положительного числа, кратного
3.
|
16
|
Обеспечить ввод с клавиатуры последовательности из целых
чисел (диапазон -27…27, конец серии - ввод числа вне диапазона). После
окончания ввода программа должна вывести количество отрицательных четных
введенных чисел.
|
2
|
Обеспечить ввод с клавиатуры последовательности из целых
чисел (диапазон -14…18, конец серии - после ввода нуля). После окончания
ввода программа должна вывести среднее значение положительных чисел
|
17
|
Обеспечить ввод с клавиатуры последовательности из целых
чисел (диапазон -24…24, конец серии - после ввода нуля). После окончания
ввода программа должна вывести среднее значение отрицательных четных чисел
|
3
|
Обеспечить ввод с клавиатуры последовательности из целых
чисел (диапазон -38…18, конец серии - ввод числа вне диапазона). После
окончания ввода программа должна вывести количество положительных введенных
чисел.
|
18
|
Обеспечить ввод с клавиатуры последовательности из целых
чисел (диапазон -25…25, конец серии - после ввода нуля). После окончания
ввода программа должна вывести значение наименьшего положительного четного
числа.
|
4
|
Обеспечить ввод с клавиатуры последовательности из целых
чисел (диапазон -21…21, конец серии - ввод числа вне диапазона). После
окончания ввода программа должна вывести значение наименьшего положительного
четного числа.
|
19
|
Обеспечить ввод с клавиатуры последовательности из целых
чисел (диапазон -38…18, конец серии - ввод числа вне диапазона). После
окончания ввода программа должна вывести среднее арифметическое положительных
введенных чисел.
|
5
|
Обеспечить ввод с клавиатуры последовательности из целых
чисел (диапазон -29…29, конец серии - ввод нуля). После окончания ввода
программа должна вывести количество четных чисел .
|
20
|
Обеспечить ввод с клавиатуры последовательности из целых
чисел (диапазон -12…12, конец серии - ввод числа вне диапазона). После
окончания ввода программа должна вывести произведение положительных четных
чисел.
|
6
|
Обеспечить ввод с клавиатуры последовательности из целых
чисел (диапазон -25…25, конец серии - ввод нуля). После окончания ввода
программа должна вывести значение наименьшего по модулю четного числа.
|
21
|
Обеспечить ввод с клавиатуры последовательности из целых
чисел (диапазон -31…31, конец серии - ввод нуля). После окончания ввода
программа должна вывести значение набольшего отрицательного кратного 3 числа.
|
7
|
Обеспечить ввод с клавиатуры последовательности из целых
чисел (диапазон -30…30, конец серии - после ввода нуля). После окончания
ввода программа должна вывести количество отрицательных, кратных 3 чисел
|
22
|
Обеспечить ввод с клавиатуры последовательности из целых
чисел (диапазон -24…24, конец серии - ввод числа вне диапазона). После
окончания ввода программа должна вывести сумму положительных нечетных чисел.
|
8
|
Обеспечить ввод с клавиатуры последовательности из целых чисел
(диапазон -50…50, конец серии - ввод числа вне диапазона). После окончания
ввода программа должна вывести значение наибольшего по модулю числа.
|
23
|
Обеспечить ввод с клавиатуры последовательности из целых
чисел (диапазон -40…40, конец серии - ввод числа вне диапазона). После
окончания ввода программа должна вывести среднее арифметическое всех чисел,
кратных 5.
|
9
|
Обеспечить ввод с клавиатуры последовательности из целых
чисел (диапазон -27…27, конец серии - ввод нуля). После окончания ввода
программа должна вывести количество четных и кратных 3 чисел.
|
24
|
Обеспечить ввод с клавиатуры последовательности из целых
чисел (диапазон -29…29, конец серии - ввод нуля). После окончания ввода
программа должна вывести количество отрицательных кратных 3 чисел.
|
10
|
Обеспечить ввод с клавиатуры последовательности из целых
чисел (диапазон -17…17, конец серии - ввод числа вне диапазона). После
окончания ввода программа должна вывести среднее арифметическое модулей
отрицательных чисел.
|
25
|
Обеспечить ввод с клавиатуры последовательности из целых
чисел (диапазон -17…17, конец серии - ввод нуля). После окончания ввода
программа должна вывести количество чисел кратных 3 .
|
11
|
Обеспечить ввод с клавиатуры последовательности из целых
чисел (диапазон -14…14, конец серии - ввод числа вне диапазона). После
окончания ввода программа должна вывести сумму отрицательных четных чисел.
|
26
|
Обеспечить ввод с клавиатуры последовательности из целых
чисел (диапазон -45…45, конец серии - ввод нуля). После окончания ввода
программа должна вывести значение наибольшего по модулю числа, кратного 3.
|
12
|
Обеспечить ввод с клавиатуры последовательности из целых
чисел (диапазон -55…55, конец серии - после ввод числа вне диапазона). После
окончания ввода программа должна вывести среднее арифметическое чисел,
кратных 4
|
27
|
Обеспечить ввод с клавиатуры последовательности из целых
чисел (диапазон -18…8, конец серии - после ввода нуля). После окончания ввода
программа должна вывести значение наибольшего отрицательного числа, кратного
3.
|
13
|
Обеспечить ввод с клавиатуры последовательности из целых
чисел (диапазон -45…45, конец серии - после ввода нуля). После окончания
ввода программа должна вывести значение наименьшего из отрицательных нечетных
чисел
|
28
|
Обеспечить ввод с клавиатуры последовательности из целых
чисел (диапазон -55…24, конец серии - после ввода нуля). После окончания
ввода программа должна вывести значение наибольшего из отрицательных четных
чисел
|
14
|
Обеспечить ввод с клавиатуры последовательности из целых
чисел (диапазон -34…34, конец серии - ввод числа вне диапазона). После
окончания ввода программа должна вывести наибольшее из отрицательных кратных
3 чисел.
|
29
|
Обеспечить ввод с клавиатуры последовательности из целых
чисел (диапазон -27…27, конец серии - ввод числа вне диапазона). После
окончания ввода программа должна вывести количество отрицательных кратных 4
введенных чисел.
|
15
|
Обеспечить ввод с клавиатуры последовательности из целых
чисел (диапазон -19…19, конец серии - ввод нуля). После окончания ввода
программа должна вывести произведение отрицательных кратных 3 чисел.
|
30
|
Обеспечить ввод с клавиатуры последовательности из целых
чисел (диапазон -30…30, конец серии - после ввода нуля). После окончания
ввода программа должна вывести сумму отрицательных, кратных 3 чисел
|
ЛАБОРАТОРНАЯ
РАБОТА №4
Тема: Организация и обработка данных при помощи массивов
Массив - это n-мерная
совокупность однотипных элементов. Данные объединяют в массивы, если необходимо
выполнить одни и те же действия над определенным количеством однотипных
значений. Массивы объявляются следующим образом:
float a[10];
//одномерный массив, состоящий из 10 элементов, каждый из которых вещественного
типа
или
int b[3][3];
//двухмерный массив (матрица 3x3}
состоящий из элементов целочисленного типа
Обращение к элементу массива по ходу выполнения программы формируется в
виде имени массива и списка индексов в квадратных скобках:
a[i] - в первом случае;
b[i][j] - во втором случае.
Ввод-вывод и обработку элементов массивов обычно производят при помощи
циклов. Если мы имеем дело с двухмерными массивами, то необходимо использовать
вложенные циклы (задача №4b).
математический алгоритмизация программа циклический
Задача 4a
Сформировать одномерный массив, состоящий из N целочисленных элементов. После чего:
Найти произведение всех элементов массива, удовлетворяющих условию c<a[I]<d
#include <stdio.h>
#include <conio.h>main()
{ const n=7;i,c,d,k=0,pr=1;("c=");
scanf("%d",&c);("d=");
scanf("%d",&d);a[n];(i=1;i<=n;i++)
{ printf("a[%d]=",i);
scanf("%d",&a[i]);(a[i]>c && a[i]<d) {k++;
pr*=a[i];}
}
if (k==0) printf("чисел, удовлетворяющих условию не было!");
else printf("pr=%d",pr);
getch();
}
Еще пример:
Сформировать одномерный массив, состоящий из N целочисленных элементов. После чего: найти количество четных
и количество нечетных элементов в массиве.
#include <stdio.h>
#include <conio.h>main()
{ const n=7;i,ch=0,nch=0;a[n];(i=1;i<=n;i++)
{ printf("a[%d]=",i);
scanf("%d",&a[i]);(a[i]%2==0) ch++; else nch++;
}("ch=%d nch=%d",ch,nch);
getch();
}
Сформировать одномерный массив, состоящий из N целочисленных элементов. После чего:
№ вар
|
Задание
|
№ вар
|
Задание
|
1
|
Найти, сколько элементов массива удовлетворяют условию
c<=a[I]<=d
|
16
|
Найти произведение кубов всех элементов массива,
удовлетворяющих условию c<=a[I]<=d
|
2
|
Найти произведение элементов массива, удовлетворяющих
условию c<=a[I]<=d
|
17
|
Найти произведение последних L элементов массива
|
3
|
Найти, сколько отрицательных элементов удовлетворяют
условию c<=a[I]<=d
|
18
|
Найти произведение первых L элементов массива
|
4
|
Найти, сколько положительных элементов удовлетворяют
условию c<=a[I]<=d
|
19
|
Найти произведение отрицательных элементов массива,
удовлетворяющих условию c<=a[I]<=d
|
5
|
Найти сумму кубов всех отрицательных элементов массива
|
20
|
Найти произведение положительных элементов массива,
удовлетворяющих условию c<=a[I]<=d
|
6
|
Найти сумму кубов всех положительных элементов массива
|
21
|
Найти сумму отрицательных элементов массива,
удовлетворяющих условию c<=a[I]<=d
|
7
|
Найти сумму квадратов всех отрицательных элементов массива
|
22
|
Найти сумму положительных элементов массива,
удовлетворяющих условию c<=a[I]<=d
|
8
|
Найти сумму квадратов всех положительных элементов массива
|
23
|
Найти произведение кубов всех отрицательных элементов
массива
|
9
|
Найти сумму кубов всех элементов массива, удовлетворяющих
условию c<=a[I]<=d
|
24
|
Найти произведение кубов всех положительных элементов
массива
|
10
|
Найти сумму квадратов всех элементов массива,
удовлетворяющих условию c<=a[I]<=d
|
25
|
Найти произведение квадратов всех отрицательных элементов
массива
|
11
|
Найти, сколько положительных, отрицательных и нулевых
элементов в массиве
|
26
|
Найти произведение квадратов всех положительных элементов
массива
|
12
|
Найти произведение квадратов всех элементов массива,
удовлетворяющих условию c<=a[I]<=d
|
27
|
Найти произведение кубов всех элементов массива,
удовлетворяющих условию c<=a[I]<=d
|
13
|
Найти, сколько четных и нечетных элементов в массиве
|
28
|
Найти произведение квадратов всех нечетных элементов
массива
|
14
|
Найти произведение квадратов всех четных элементов массива
|
29
|
Найти, сколько четныхэлементов удовлетворяют условию
c<=a[I]<=d
|
15
|
Найти произведение квадратов всех элементов массива,
кратных 3
|
30
|
Найти произведение всех нечетных элементов массива,
удовлетворяющих условию c<=a[I]<=d
|
Заполнение массива случайными числами
Для инициализации генератора случайных чисел служит функция randomize();
Это функция содержится в библиотеке <stdlib.h>,
которую необходимо подключить в разделе #include.
Функция random возвращает случайное число в
заданном диапазоне.
Например, присвоить переменной x случайное число в диапазоне от А до В.
х=A+random(B-A+1)
Случайное число в диапазоне от 0 до 99:
х=random(100)
Задача 4b
Сформировать двухмерный массив, состоящий из N x N элементов (заполнить случайными числами в диапазоне от 10 до
100). После чего: найти сумму элементов столбца, в котором расположен
минимальный элемент матрицы.
#include <stdio.h>
#include <conio.h>
#include <stdlib.h>main()
{ const n=7;i,j,k=0,sum=0,min;a[n][n];();(i=0;i<n;i++)
{(j=0;j<n;j++)
{[i][j]=10+random(91);("%5d",a[i][j]);
}
printf("\n"); //переход на другую строку
}=a[1][1];(i=0;i<n;i++)(j=0;j<n;j++)
if (min>a[i][j])
{min=a[i][j]; k=j;}(i=0,i<n,i++)+=a[i][k];("min=%d
k=%d\n",min,k);("sum=%d",sum);();
}
Еще пример:
Сформировать двухмерный массив, состоящий из N x N элементов (заполнить случайными числами в диапазоне от 10 до
100). После чего: сформировать одномерный массив из сумм минимальных и
максимальных значений элементов строк.
#include <stdio.h>
#include <conio.h>
#include <stdlib.h>main()
{ const n=3;i,j,min,max;a[n][n];mas[n];();(i=0;i<n;i++)
{(j=0;j<n;j++)
{[i][j]=10+random(91);("%4d",a[i][j]);
}("\n");
}(i=0;i<n;i++)
{
min=a[i][0]; max=a[i][0];(j=1;j<n;j++)
{(min>a[i][j])min=a[i][j];(max<a[i][j])max=a[i][j];
}[i]=min+max;
}(i=0;i<n;i++)("%5d",mas[i]);();
}
Сформировать двухмерный массив, состоящий из N x N элементов (заполнить случайными числами в произвольном
диапазоне). После чего:
№ вар
|
Задание
|
№ вар
|
Задание
|
1
|
Получить новую матрицу путем деления всех элементов данной
матрицы на ее наибольший по модулю элемент
|
16
|
Сформировать одномерный массив из сумм элементов столбцов
|
2
|
Получить новую матрицу путем деления всех элементов данной
матрицы на ее наименьший по модулю элемент
|
17
|
Сформировать одномерный массив из произведений элементов
строк
|
3
|
Получить новую матрицу путем умножения всех элементов
данной матрицы на ее наибольший по модулю элемент
|
18
|
Сформировать одномерный массив из произведений элементов
столбцов
|
4
|
Получить новую матрицу путем умножения всех элементов
данной матрицы на ее наименьший по модулю элемент
|
19
|
Сформировать одномерный массив из наименьших значений
элементов строк
|
5
|
Получить новую матрицу путем сложения всех элементов данной
матрицы с ее наибольшим по модулю элементом
|
20
|
Сформировать одномерный массив из наибольших значений
элементов строк
|
6
|
Получить новую матрицу путем сложения всех элементов данной
матрицы с ее наименьшим по модулю элементом
|
21
|
Сформировать одномерный массив из наименьших значений
элементов столбцов
|
7
|
Получить новую матрицу путем вычитания всех элементов
данной матрицы из ее наибольшего по модулю элемента
|
22
|
Сформировать одномерный массив из наибольших значений
элементов столбцов
|
8
|
Получить новую матрицу путем вычитания всех элементов
данной матрицы из ее наименьшего по модулю элемента
|
23
|
Сформировать одномерный массив из разницы наибольших и
наименьших значений элементов столбцов
|
9
|
Заменить нулями все элементы, расположенные на главной
диагонали и выше нее.
|
24
|
Сформировать одномерный массив из разницы наибольших и
наименьших значений элементов строк
|
10
|
Заменить нулями все элементы, расположенные на главной
диагонали и ниже нее.
|
25
|
Сформировать одномерный массив из суммы наибольших и
наименьших значений элементов столбцов
|
11
|
Заменить нулями все элементы, расположенные на главной
диагонали.
|
26
|
Сформировать одномерный массив из суммы наибольших и наименьших
значений элементов строк
|
12
|
Сформировать одномерный массив из сумм элементов строк
|
27
|
Найти сумму элементов строки, в которой расположен
максимальный элемент матрицы
|
13
|
Найти максимальное значение элементов этого массива,
вычислить среднее арифметическое строки с этим элементом, указав номер данной
строки в массиве.
|
28
|
Найти минимальное значение элемента этого массива,
вычислить среднее арифметическое столбца с этим элементом, указав номер
данного столбца в массиве.
|
14
|
Найти среднее арифметическое элементов каждой нечетной
строки этого массива.
|
29
|
Найти среднее арифметическое элементов каждой четной строки
этого массива.
|
15
|
Найти среднее арифметическое элементов каждого из нечетных
столбцов этого массива.
|
30
|
Найти среднее арифметическое элементов каждого из четных
столбцов этого массива.
|
Задача 4c
Сформировать одномерный массив, состоящий из 5 элементов и отсортировать
его по возрастанию.
// Сортировка массива методом прямого выбора
#include <stdio.h>
#include <conio.h>
#define SZ 5 // размер массива main ()
{
int a[SZ]; // объявляем массив, состоящий из
целочисленных элементов
int i,min,j,buf,k;
//формируем одномерный массив
for (i = 0; i < SZ; i++)
{printf("a[%d]=",i);
scanf("%d",&a[i]);
}
printf("\n"); //переход на другую строку
for (i = 0; i < SZ-1; i++)
{ // поиск минимального эл-та
// в части массива от а[1] до последнего эл-та
min = i; //запоминаем номер минимального
элемента
for (j = i+1; j < SZ; j++)(a[j] < a[min]) min = j; //
поменяем местами a[min] и a[i]= a[i]; a [i] = a [min] ; a[min] = buf;
}(k =0; k < SZ; k++)("%i ", a[k]);
printf("\n");();
}
Еще пример:
Заполнить массив, состоящий из 12 элементов случайными числами в
диапазоне от -100 до100. Сортировать их по убыванию и вывести на экран по 4
элемента в строке.
// Сортировка массива методом прямого выбора
#include <stdio.h>
#include <conio.h>
#include <stdlib.h>
#define SZ 12 // размер
массиваmain ()
{();a[SZ];i,max,j,buf,k;(i = 0; i < SZ; i++)
{[i]=-100+random(201);("%5d",a[i]);
}("\n");(i = 0; i < SZ-1; i++)
{= i;(j = i+1; j < SZ; j++)(a[j] > a[max]) max = j; // поменяем местами a[min] и a[i]=
a[i]; a [i] = a [max] ; a[max] = buf;
}(k =0; k < SZ; k++)
}();
}
Еще пример:
Ввести последовательность целых чисел (завершение ввода - «ноль») и напечатать их в порядке убывания по 5 элементов в
каждой строке. Недостающие в строке элементы (если такие имеются) заменить
единицами.
#include <stdio.h>
#include <conio.h>
#define SZ 100
void main ()
{a[SZ];
int i=-1,max,j,buf,k;
//формируем массив
do
{++; printf("a[%d]=",i);
scanf("%d",&a[i]);
}
while
(a[i]!=0); //условие окончания формирования массива - ввод нуля
k=i; //количество элементов в массиве
printf("\n");
//сортировка элементов
for (i = 0; i < k-1; i++)
{= i;(j = i+1; j < k; j++)(a[j] > a[max]) max = j;=
a[i]; a [i] = a [max] ; a[max] = buf;
}
//вывод отсортированных элементов по 5 в строке
for (i =0; i < k; i++)
{("%5d ", a[i]); ((i+1)%5==0)
printf("\n");
}
//заполнение оставшихся позиций единицами
for (i=1;i<=(k/5+1)*5-k;i++)(" %d",1);//четыре пробела перед знаком %();
}
№ вар
|
Задание
|
№ вар
|
Задание
|
1
|
Заполнить одномерный массив, состоящий из 20 элементов
случайными числами в диапазоне от 0 до 100. Сортировать полученный массив по
убыванию и вывести на экран по 5 элементов в строке
|
16
|
Ввести последовательность целых чисел в диапазоне от 0 до
150 (завершение ввода -
«Число вне диапазона»)
и напечатать их в порядке возрастания по 3 элемента в каждой строке.
Недостающие в строке элементы (если такие имеются) заменить максимальным
значением.
|
2
|
Ввести последовательность целых чисел (завершение ввода
-«ноль») и напечатать их в порядке убывания по 3 элемента в каждой строке.
Недостающие в строке элементы (если такие имеются) заменить нулями.
|
17
|
Три одномерных массива состоят из N=5 произвольных действительных
компонентов каждый. Разместить минимальные компоненты этих массивов в порядке
возрастания.
|
3
|
Три одномерных массива состоят из N=7 произвольных
действительных компонентов каждый. Разместить максимальные компоненты этих
массивов в порядке убывания.
|
18
|
Заполнить одномерный массив, состоящий из 10 элементов
случайными числами в диапазоне от 0 до 100. Сортировать полученный массив по
возрастанию и вывести на экран по 3 элемента в строке. Недостающие в строке
элементы заменить минимальным значением.
|
4
|
Заполнить одномерный массив, состоящий из 20 элементов,
случайными числами в диапазоне от 0 до 500. Сформировать другой массив,
состоящий из элементов исходного, кратных 7. Сортировать полученный массив по
убыванию.
|
19
|
Заполнить одномерный массив, состоящий из 50 элементов,
случайными числами в диапазоне от 0 до 1000. Сформировать другой массив,
состоящий из элементов исходного, являющихся четными числами. Сортировать
полученный массив по возрастанию.
|
5
|
Пять одномерных массива состоят из N=10 произвольных действительных
компонентов каждый. Разместить средние арифметические значения элементов этих
массивов в порядке возрастания.
|
20
|
Заполнить двухмерный массив, состоящий из 5x5 элементов,
случайными числами в диапазоне от 0 до 100. Сформировать одномерный массив,
состоящий из сумм строк исходного и сортировать его по убыванию.
|
6
|
Заполнить двухмерный массив, состоящий из 5x5 элементов,
случайными числами в диапазоне от 0 до 100. Сформировать одномерный массив,
состоящий из произведений столбцов исходного и сортировать его по
возрастанию.
|
21
|
Заполнить одномерный массив, состоящий из 50 элементов,
случайными числами в диапазоне от 0 до 1000. Сформировать другой массив,
состоящий из элементов исходного, кратных 7. Сортировать полученный массив по
возрастанию.
|
7
|
Даны два двухмерных массива (3*3). Получить одномерный
массив, элементы которого будут являться суммой соответствующих элементов
исходного массива. Сортировать массив по убыванию
|
22
|
Заполнить двухмерный массив, состоящий из 5x5 элементов,
случайными числами в диапазоне от 0 до 100. Сформировать одномерный массив,
состоящий из сумм столбцов исходного и сортировать его по убыванию.
|
8
|
Даны два двухмерных массива (3*3). Получить одномерный
массив, элементы которого будут являться произведением соответствующих элементов
исходного массива. Сортировать массив по возрастанию.
|
23
|
Заполнить двухмерный массив, состоящий из 5x5 элементов,
случайными числами в диапазоне от 0 до 100. Сортировать массив по возрастанию
и вывести по строкам.
|
9
|
Заполнить двухмерный массив, состоящий из 5x5 элементов,
случайными числами в диапазоне от 0 до 100. Сформировать одномерный массив,
состоящий из минимальных элементов строк исходного и сортировать его по
убыванию.
|
24
|
Ввести последовательность целых чисел в диапазоне от -100
до 100 (завершение ввода -«Число вне диапазона») и напечатать их в порядке
возрастания по 4 элемента в каждой строке. Недостающие в строке элементы
(если такие имеются) заменить значением модуля минимального числа.
|
10
|
Заполнить двухмерный массив, состоящий из 5x5 элементов,
случайными числами в диапазоне от 0 до 100. Сформировать одномерный массив,
состоящий из элементов исходного, расположенных ниже главной диагонали и
сортировать его по убыванию.
|
25
|
Заполнить двухмерный массив, состоящий из 4x3 элементов,
случайными числами в диапазоне от 0 до 100. Сформировать двухмерный массив
6x2, состоящий из элементов исходного, расположенных по убыванию.
|
11
|
Заполнить одномерный массив, состоящий из 50 элементов,
случайными числами в диапазоне от 0 до 1000. Сформировать другой массив,
состоящий из четных элементов исходного. Сортировать полученный массив по
возрастанию.
|
26
|
Ввести последовательность целых чисел в диапазоне от 0 до
150 (завершение ввода -«Число вне диапазона») и напечатать их в порядке
возрастания по 3 элемента в каждой строке. Недостающие в строке элементы
(если такие имеются) заменить значением среднего арифметического элементов
массива.
|
12
|
Три одномерных массива состоят из N=10 произвольных
действительных компонентов каждый. Разместить модули разности нечетных
элементов этих массивов в порядке убывания.
|
27
|
Заполнить двухмерный массив, состоящий из 5x5 элементов,
случайными числами в диапазоне от 0 до 100. Сформировать одномерный массив,
состоящий из элементов исходного, расположенных вышеглавной диагонали и сортировать
его по возрастанию.
|
13
|
Ввести последовательность целых чисел (завершение ввода - «ноль») и напечатать их в порядке возрастания по 4
элемента в каждой строке. Недостающие в строке элементы (если такие имеются)
заменить единицей.
|
28
|
Три одномерных массива состоят из N=10 произвольных
действительных компонентов каждый. Разместить суммы четных элементов этих
массивов в порядке возрастания.
|
14
|
Заполнить одномерный массив, состоящий из 13 элементов
случайными числами в диапазоне от 0 до 100. Сортировать полученный массив по
убыванию и вывести на экран по 3 элемента в строке. Недостающие в строке
элементы заменить суммой отрицательных элементов массива.
|
29
|
Заполнить одномерный массив, состоящий из 20 элементов,
случайными числами в диапазоне от 0 до 500. Сформировать другой массив,
состоящий из элементов исходного, кратных 3. Сортировать полученный массив по
убыванию.
|
15
|
Ввести последовательность целых чисел (завершение ввода
-«ноль»), вычесть из них наименьшее и напечатать их в порядке возрастания по
5 элементов в каждой строке. Недостающие в строке элементы (если такие
имеются) заменить нулем.
|
30
|
Ввести последовательность целых чисел (завершение ввода
-«ноль»), прибавить к ним наибольшее и напечатать их в порядке возрастания по
4 элемента в каждой строке. Недостающие в строке элементы (если такие
имеются) заменить единицей.
|
ЛАБОРАТОРНАЯ
РАБОТА №5
Тема:
Функции работы со строками. Функции преобразования
<file:///D:\Documents\CD_RW\Disk_OOP\GL3.htm>
Строковые переменные представляют собой массив символов и объявляются
следующим образом: char s[15];
где 15 - максимально возможное число символов в строке. Обращение к
отдельному символу строки происходит путем указания индекса (порядкового номера
символа строке), начиная с нуля.
Например, выведем на экран второй символ в строке:
s=”ABCD”;
printf("%c",s[1]);
В результате выполнения фрагмента кода на экране будет отображен символ В
Для использования функций работы со строками необходимо добавить в раздел
#include ссылку на заголовочный файл <string.h>
Функция strlen(s) возвращает длину строки s.
Пример: Ввести строку и подсчитать количество символов в ней.
#include<stdio.h>
#include<conio.h>
#include<string.h>main()
{s[15]; scanf("%s",&s); //вводим трокуa;
a=strlen(s);
printf("%d",a);//выводим на экран количество символов();
}
Поскольку строки являются массивом символов, для их обработки часто
используются циклы.
Еще пример:
Составить программу, которая подсчитывает в предложении количество
символов “k”.
#include<stdio.h>
#include<conio.h>
#include<string.h>main()
{s[15];("%s",&s);a=0,i;(i=0;i<strlen(s);i++)
if (s[i]=='k') a++;("%d",a);();
}
Функция getch() возвращает нажатый символ (или его
код) без вывода на экран.
Пример: выводить на экран нажатый символ и его код, пока не нажата
клавиша Esc
#include<stdio.h>
#include<conio.h>main()
{ch;
{ = getch();
printf("%c -> %d\n",ch,ch); //печать символа и его кода с последующим
переходом на новую строку
}
while
(ch!=27); //пока не нажата клавиша Esc
getch();
}
Функция strlwr(s)
преобразует строчные символы строки в прописные (обрабатывает только буквы
латинского алфавита). Функция strupr(s) производит обратное преобразование
- прописные символы строки в строчные.
Пример: ввести строку и преобразовать ее к верхнему регистру.
#include <stdio.h>
#include <string.h>
#include <conio.h>main(void)
{st[15];("%s",&st);(strupr(st));
getch();
}
Функция strchr(s,ch) выполняет поиск символа ch в строке s и возвращает указатель на первый найденный символ или, если
символ найден, null.
Функцию strrchr(s,ch) выполняет
поиск символа ch в строке s и возвращает указатель на место последнего появления в
строке заданного символа:
Пример: Ввести строку текста и вычислить номер позиции, в которой первый
раз встречается буква ‘А’.
#include <stdio.h>
#include <string.h>
#include <conio.h>main(void)
{s[64];("%s",s);*ptr;
= strchr(s, 'A');(*ptr)(" %d\n", ptr - s+1);
else("Символ не найден\n");();
}
Функция strcat(s1,s2) объединяет строки s1 и s2 и записывает результат в строку s1.
Пример: Объединить вместе две строки.
#include <stdio.h>
#include <string.h>
#include <conio.h>main(void)
{
char s1[]="abc"; //задание первой текстовой
константы
char s2[]="def"; //задание второй текстовой
константы
strcat(s1,s2);("%s",s1);();
}
При работе со строками одной из наиболее часто используемых операций
является преобразование символьного представления числа в числовое.
Преобразует символьную строку в значение типа floatПреобразует символьную
строку в значение типа intПреобразует символьную строку в значение типа long
intПреобразует символьную строку в значение типа doubleПреобразует символьную
строку в значение типа long int
№ вар
|
Задание
|
№ вар
|
Задание
|
1
|
Составить программу, которая подсчитывает количество
предложений в тексте (считаем, что предложения разделяются точками и
восклицательными и вопросительными знаками).
|
16
|
Ввести текст. После каждого слова записать в скобках его
длину.
|
2
|
Ввести строку текста на английском языке строчными буквами.
Изменить его таким образом, чтобы каждое слово начиналось с большой буквы.
|
17
|
Задана строковая последовательность ‘15*3+7’. Вычислить
значение выражения
|
3
|
Ввести предложение. Вывести на экран цепочку букв, с
которых начинаются слова предложения.
|
18
|
Ввести предложение. Вывести на экран цепочку букв, которыми
заканчиваются слова предложения.
|
4
|
Ввести строку текста и вычислить номер позиции, в которой
первый раз встречается буква ‘е’
|
19
|
Ввести текст и подсчитать, сколько раз в нем встречается
удвоенная буква 'м'
|
5
|
Задана строковая последовательность ‘15+3*5’. Вычислить
значение выражения
|
20
|
Ввести текст. После каждого предложения записать в скобках
количество слов в нем.
|
6
|
Ввести строку текста на английском языке строчными буквами.
Изменить его таким образом, чтобы каждое предложение начиналось с большой
буквы.
|
21
|
Задана строковая последовательность ‘15/3+3’. Вычислить
значение выражения
|
7
|
Ввести текст. После каждого предложения записать в скобках
количество символов в нем, включая пробелы.
|
22
|
Ввести произвольную строку, содержащую цифровые и буквенные
символы. Подсчитать, сколько цифровых содержится в введенной строке
|
8
|
Ввести текст. Удалить из него слова с четными порядковыми
номерами.
|
23
|
Ввести строку текста и вычислить номер позиции, в которой
последний раз встречается буква ‘и’
|
9
|
Ввести текст и подсчитать, сколько раз в нем встречаются
запятая и точка
|
24
|
Задана строковая последовательность ‘15*3’. Вычислить
значение разности
|
10
|
Ввести произвольную строку, содержащую цифровые и буквенные
символы. Подсчитать, сколько нецифровых содержится в введенной строке
|
25
|
Ввести текст. После каждого предложения записать в скобках
количество символов в нем, исключая пробелы.
|
11
|
Ввести текст. После слов с нечетными порядковыми номерами
вставить знак вопрса.
|
26
|
Ввести текст. Удалить из него слова с нечетными порядковыми
номерами.
|
12
|
Ввести текст. Определить на какую букву начинается каждое
третье слово
|
27
|
Ввести текст. Определить на какую букву заканчивается
каждое второе слово
|
13
|
Ввести произвольную строку, подсчитать, сколько слов в
заданной строке оканчиваются буквой ‘я’
|
28
|
Ввести произвольную строку, подсчитать, сколько слов в
заданной строке начинаются буквой ‘к’
|
14
|
Ввести строку текста и вычислить номер позиции, в которой
последний раз встречается буква ‘F’
|
29
|
Ввести текст. Определить, на какую букву начинается пятое
слово.
|
15
|
Ввести текст. Заменить каждое второе слово многоточием.
|
30
|
Ввести произвольную строку, содержащую цифровые и буквенные
символы. Удалить из текста все цифровые символы
|
ЛИТЕРАТУРА
1. Павловская
Т.А. С/С++. Программирование на языке высокого уровня. - Спб.: Питер, 2001. -
464 с.
2. Пратта
С. Язык программирования С++. Лекции и упражнения - М.: Диа-Софт, 2003. - 656
с.
. Страуструп
Б. Дизайн и эволюция языка C++. Объектно-ориентированный язык программирования.
- М.: ДМК-Пресс, 2000. - 448с.
. Шилд
Г. С/С++. Справочник программиста - М.: Вильямс, 2000. - 448 с.
. Шмидский
Я.К. Программирование на языке С/С++ - М.: Диалектика, 2003. - 352 с.