Составление программ и алгоритмизация задач по дисциплине "Объектно-ориентированное программирование"
Использование математических функций для алгоритмизации задач и отладки программ. Операторы сравнения и логические функции; реализация циклического процесса. Организация и обработка данных при помощи массивов. Функции преобразования и работы со строками.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | методичка |
Язык | русский |
Дата добавления | 24.10.2012 |
Размер файла | 135,5 K |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Размещено на http://www.allbest.ru/
4
Министерство образования и науки Украины
Криворожский институт
ЧВУЗ «Кременчугский университет экономики, информационных технологий и управления»
Факультет - инженерный
Кафедра технической кибернетики
Специальность 7.0901402 «Гибкие компьютеризированные системы и робототехника»
МЕТОДИЧЕСКИЕ УКАЗАНИЯ
к выполнению лабораторных работ
по дисциплине
«Объектно-ориентированное программирование»
для студентов дневной и заочной форм обучения
Кривой Рог 2008
СОДЕРЖАНИЕ
- ВВЕДЕНИЕ
- Лабораторная работа №1
- Лабораторная работа № 2
- Лабораторная работа №3
- Лабораторная работа №4
- Лабораторная работа №5
- ЛИТЕРАТУРА
ВВЕДЕНИЕ
Лабораторные работы по дисциплине “Объектно-ориентированное программирование” выполняются студентами 2 курса специальности “Гибкие компьютеризованные системы и робототехника” дневной и заочной учебы.
Основная цель лабораторного практикума - закрепить знания, полученные на лекционных, практических занятиях и в результате самостоятельной работы. Студенты развивают навыки составления программ и алгоритмизации задач, осваивают приемы отладки программ.
Язык программирования BC является частью программной среды Borland C++, которая включает в себя не только соответствующий компилятор, но и текстовый редактор, компоновщик, загрузчик, отладчик и другие средства, что убыстряет процесс создания программы. Кроме того, возможности языка BC расширяются дополнительными программными средствами - модулями. Потому владение приемами работы в среде Borland C++ является крайне необходимым.
Система Borland C++, как одно из средств автоматизации программирования, является составной частью операционной системы MS DOS или Windows определенной версии. Потому студентам необходимо знать особенности файловой системы, владеть средствами работы с файлами и каталогами (папками) собственно операционной системы или оболочки Norton Commander.
ОБЩИЕ СВЕДЕНИЯ
Структура программы
Программа состоит из одной или более функций, причем какая-нибудь из них (главная) обязательно должна называться main( ). Описание функции состоит из заголовка и тела. Заголовок состоит из директив препроцессора типа #include и имени функции.
В разделе мы указываем, какие файлы мы будем использовать в качестве библиотек. Например:
#include <stdio.h>
Эта строка указывает компилятору, что нужно включить информацию, содержащуюся в файле stdio.h.
Отличительным признаком имени функции служат круглые скобки, а аргумент может и отсутствовать. Тело функции заключено в фигурные скобки и представляет собой набор операторов, каждый из которых оканчивается символом "точка с запятой".
В простейшем случае программа представляет собой одну единственную функцию main. Если функция main получает параметры и возвращает результат, то она объявляется так:
int main(int argc) { /* операторы*/
}
return(значение);
Если функция main не получает параметры и не возвращает результат, то она объявляется так:
void main()
{ /* операторы*/
}
Комментарии в программе либо оформляются следующим образом:
/* комментарий*/ или // комментарий.
Основные типы данных
К основным типам данных языка 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
Инструкция присваивания
Переменную можно изменять при помощи операции присваивания. В языке С++ она обозначается знаком равенства.
Например: x = 12;
В С++ поддерживается сокращенная форма записи:
Инструкция |
Соответствующая "обычная"инструкция присваивания |
|
х + + |
x = x + 1 |
|
х-- |
x = x - 1 |
|
х += у |
x = x + у |
|
x - =у |
х = х - у |
|
х *= у |
х = х*у |
|
х %= у |
x = x % у |
Функции ввода-вывода
Функция 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>
void main ()
{
float x,y,z; //описываем переменные
printf("x="); scanf("%f",&x);
printf("y="); scanf("%f",&y);
z=sqrt(fabs(sin(x)+cos(y)))/pow(sin(x)/cos(y),2)*log(fabs(x));
printf("%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>
void main ()
{
float a,b,y;
printf("a="); scanf("%f",&a);
printf("b="); scanf("%f",&b);
if (a>b) y=a/b+2; else if (a==b) y=-71; else y=(a-5)/a;
printf("%5.3f",y);
getch();
}
№ вар |
Задание |
№ вар |
Задание |
|
16 |
||||
17 |
||||
18 |
||||
19 |
||||
20 |
||||
21 |
||||
22 |
||||
23 |
||||
24 |
||||
25 |
||||
26. |
||||
27. |
||||
28 |
||||
29 |
||||
30 |
Оператор SWITCH используют для разветвления программы по нескольким направлениям. Он имеет следующую структуру:
switch(e)
{
case c1:s1; break;
case c2:s2; break;
case ck:sk; break;
default:s;
}
Где: е- значение целочисленной переменной;
с1, с2,сk - значения, которые она принимает;
s1,s2,sk - операторы, которые выполняются, если переменная е принимает соответствующее значение. Если операторов несколько, они заключаются в операторные скобки {}
Если значение переменной e не равно ни одному из указанных, выполняются операторы, которые идут после default.
Задача 2б
Составить программу, которая запрашивает порядковый номер месяца и выводит его название на экран.
#include <stdio.h>
#include <conio.h>
void main()
{
printf("Введите номер месяца -");
int mes; scanf("%d",&mes);
switch(mes)
{
case 1,2,12:printf("зима"); break;
case 3,4,5:printf("весна"); break;
case 6,7,8:printf("лето"); break;
case 9,10,11:printf("осень"); break;
default: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>
void main ()
{
float x,y=1; int n;
printf("x="); scanf("%f",&x);
for (n=2;n<=5;n++)// переменная I изменяется от 2 до 5 с шагом 1
y*=exp(-x)*log(x)*tan(x);
printf("%5.10f",y);
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 |
Инструкция цикла WHILE носит название цикла с предусловием, так как анализ конца цикла производится до выполнения операторов тела цикла. Она используется, когда количество повторений операторов цикла заранее неизвестно и определяется в процессе выполнения цикла. При определенных условиях цикл не выполняется ни разу.
Синтаксис:
while(УсловиеВыполнения)
{Инструкции цикла (тело цикла)}
Сначала проверяется значение выражения УсловиеВылолнёния. Если. условие истинно, то выполняются инструкции цикла (тело цикла). Затем снова проверяется значение выражения УсловиеВыполнения, и если оно истинно, инструкции цикла выполняются еще раз. И так до тех пор, пока значение выражения УсловиеВылолнения не станет неверным.
Задача №3b
Вычислить таблицу значений функций для значений аргумента x, который изменяется от xn до xk с шагом dx
#include <stdio.h>
#include <conio.h>
#include <math.h>
void main()
{
float xn,xk,dx,x,y;
printf("xn="); scanf("%f",&xn);
printf("xk="); scanf("%f",&xk);
printf("dx="); scanf("%f",&dx);
x=xn; //присваиваем переменной x начальное значение
while (x<=xk)
{
y=pow(tan(x/2),2)*exp(-2*x)*log(fabs(x));
printf("x=%1.1f y=%f\n",x,y);
x+=dx; //значение x возрастает на величину шага
}
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 |
Цикл с постусловием 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>
void main()
{
int x,max=0;
do
{ printf("x="); scanf("%d",&x);
if (x>=-100 && x<=100 && max<abs(x)) max=x;
}
while (x>=-100 && x<=100);
printf("max=%d",max);
getch();
}
Еще один пример:
Обеспечить ввод с клавиатуры последовательности из целых чисел
(диапазон от -20 до 10, конец серии - ввод нуля). После окончания ввода программа должна вывести количество положительных и четных чисел
Для определения кратности числа можно воспользоваться операцией %, которая возвращает остаток от целочисленного деления. Эта операция применима только к переменным целого типа (int). Например, 5%2==1, 4%2== 0
#include <stdio.h>
#include <conio.h>
#include <math.h>
void main()
{
int x,k;
do
{ printf("x="); scanf("%d",&x);
if (x<=10 && x>0 && x%2==0) k++;
}
while (x!=0);
printf("k=%d",k);
getch();
}
№ вар |
Задание |
№ вар |
Задание |
|
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>
void main()
{ const n=7;
int i,c,d,k=0,pr=1;
printf("c="); scanf("%d",&c);
printf("d="); scanf("%d",&d);
int a[n];
for(i=1;i<=n;i++)
{ printf("a[%d]=",i); scanf("%d",&a[i]);
if (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>
void main()
{ const n=7;
int i,ch=0,nch=0;
int a[n];
for(i=1;i<=n;i++)
{ printf("a[%d]=",i); scanf("%d",&a[i]);
if (a[i]%2==0) ch++; else nch++;
}
printf("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>
void main()
{ const n=7;
int i,j,k=0,sum=0,min;
int a[n][n];
randomize();
for(i=0;i<n;i++)
{
for(j=0;j<n;j++)
{
a[i][j]=10+random(91);
printf("%5d",a[i][j]);
}
printf("\n"); //переход на другую строку
}
min=a[1][1];
for(i=0;i<n;i++)
for(j=0;j<n;j++)
if (min>a[i][j])
{min=a[i][j]; k=j;}
for(i=0,i<n,i++)
sum+=a[i][k];
printf("min=%d k=%d\n",min,k);
printf("sum=%d",sum);
getch();
}
Еще пример:
Сформировать двухмерный массив, состоящий из N x N элементов (заполнить случайными числами в диапазоне от 10 до 100). После чего: сформировать одномерный массив из сумм минимальных и максимальных значений элементов строк.
#include <stdio.h>
#include <conio.h>
#include <stdlib.h>
void main()
{ const n=3;
int i,j,min,max;
int a[n][n];
int mas[n];
randomize();
for(i=0;i<n;i++)
{
for(j=0;j<n;j++) {
a[i][j]=10+random(91);
printf("%4d",a[i][j]);
}
printf("\n");
}
for(i=0;i<n;i++)
{
min=a[i][0]; max=a[i][0];
for(j=1;j<n;j++)
{
if (min>a[i][j])min=a[i][j];
if (max<a[i][j])max=a[i][j];
}
mas[i]=min+max;
}
for(i=0;i<n;i++)
printf("%5d",mas[i]);
getch();
}
Сформировать двухмерный массив, состоящий из 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 // размер массива
void 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++)
if (a[j] < a[min]) min = j; // поменяем местами a[min] и a[i]
buf = a[i]; a [i] = a [min] ; a[min] = buf;
}
for (k =0; k < SZ; k++)
printf("%i ", a[k]); printf("\n");
getch();
}
Еще пример:
Заполнить массив, состоящий из 12 элементов случайными числами в диапазоне от -100 до100. Сортировать их по убыванию и вывести на экран по 4 элемента в строке.
// Сортировка массива методом прямого выбора
#include <stdio.h>
#include <conio.h>
#include <stdlib.h>
#define SZ 12 // размер массива
void main ()
{
randomize();
int a[SZ];
int i,max,j,buf,k;
for (i = 0; i < SZ; i++)
{
a[i]=-100+random(201);
printf("%5d",a[i]);
}
printf("\n");
for (i = 0; i < SZ-1; i++)
{
max = i;
for (j = i+1; j < SZ; j++)
if (a[j] > a[max]) max = j; // поменяем местами a[min] и a[i]
buf = a[i]; a [i] = a [max] ; a[max] = buf;
}
for (k =0; k < SZ; k++)
{
printf("%i ", a[k]);
if ((k+1)%4==0) printf("\n");
}
getch();
}
Еще пример:
Ввести последовательность целых чисел (завершение ввода - «ноль») и напечатать их в порядке убывания по 5 элементов в каждой строке. Недостающие в строке элементы (если такие имеются) заменить единицами.
#include <stdio.h>
#include <conio.h>
#define SZ 100
void main ()
{
int a[SZ];
int i=-1,max,j,buf,k;
//формируем массив
do
{
i++; printf("a[%d]=",i); scanf("%d",&a[i]);
}
while (a[i]!=0); //условие окончания формирования массива - ввод нуля
k=i; //количество элементов в массиве
printf("\n");
//сортировка элементов
for (i = 0; i < k-1; i++)
{
max = i;
for (j = i+1; j < k; j++)
if (a[j] > a[max]) max = j;
buf = a[i]; a [i] = a [max] ; a[max] = buf;
}
//вывод отсортированных элементов по 5 в строке
for (i =0; i < k; i++)
{
printf("%5d ", a[i]);
if ((i+1)%5==0) printf("\n");
}
//заполнение оставшихся позиций единицами
for (i=1;i<=(k/5+1)*5-k;i++)
printf(" %d",1);//четыре пробела перед знаком %
getch();
}
№ вар |
Задание |
№ вар |
Задание |
|
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
Тема: Функции работы со строками. Функции преобразования
Строковые переменные представляют собой массив символов и объявляются следующим образом: 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>
void main()
{
char s[15]; scanf("%s",&s); //вводим троку
int a; a=strlen(s);
printf("%d",a);//выводим на экран количество символов
getch();
}
Поскольку строки являются массивом символов, для их обработки часто используются циклы.
Еще пример:
Составить программу, которая подсчитывает в предложении количество символов “k”.
#include<stdio.h>
#include<conio.h>
#include<string.h>
void main()
{
char s[15];
scanf("%s",&s);
int a=0,i;
for(i=0;i<strlen(s);i++)
if (s[i]=='k') a++;
printf("%d",a);
getch();
}
Функция getch() возвращает нажатый символ (или его код) без вывода на экран.
Пример: выводить на экран нажатый символ и его код, пока не нажата клавиша Esc
#include<stdio.h>
#include<conio.h>
void main()
{
char ch;
do
{
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>
void main(void)
{
char st[15];
scanf("%s",&st);
printf(strupr(st));
getch();
}
Функция strchr(s,ch) выполняет поиск символа ch в строке s и возвращает указатель на первый найденный символ или, если символ найден, null.
Функцию strrchr(s,ch) выполняет поиск символа ch в строке s и возвращает указатель на место последнего появления в строке заданного символа:
Пример: Ввести строку текста и вычислить номер позиции, в которой первый раз встречается буква `А'.
#include <stdio.h>
#include <string.h>
#include <conio.h>
void main(void)
{
char s[64];
scanf("%s",s);
char *ptr;
ptr = strchr(s, 'A');
if (*ptr)
printf(" %d\n", ptr - s+1);
else
printf("Символ не найден\n");
getch();
}
Функция strcat(s1,s2) объединяет строки s1 и s2 и записывает результат в строку s1.
Пример: Объединить вместе две строки.
#include <stdio.h>
#include <string.h>
#include <conio.h>
void main(void)
{
char s1[]="abc"; //задание первой текстовой константы
char s2[]="def"; //задание второй текстовой константы
strcat(s1,s2);
printf("%s",s1);
getch();
}
При работе со строками одной из наиболее часто используемых операций является преобразование символьного представления числа в числовое.
atofПреобразует символьную строку в значение типа float
atoiПреобразует символьную строку в значение типа int
atolПреобразует символьную строку в значение типа long int
strtodПреобразует символьную строку в значение типа double
strtolПреобразует символьную строку в значение типа 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 с.
3. Страуструп Б. Дизайн и эволюция языка C++. Объектно-ориентированный язык программирования. - М.: ДМК-Пресс, 2000. - 448с.
4. Шилд Г. С/С++. Справочник программиста - М.: Вильямс, 2000. - 448 с.
5. Шмидский Я.К. Программирование на языке С/С++ - М.: Диалектика, 2003. - 352 с.
Размещено на Allbest.ru
Подобные документы
Изучение функций и возможностей среды разработки языка программирования Pascal. Рассмотрение работы с одномерными и двумерными массивами, со строками и числами. Математическая формулировка задач. Разработка алгоритмов, описание структуры программ.
курсовая работа [879,8 K], добавлен 11.02.2016Технологии программирования. Сущность объектно-ориентированного подхода к программированию. Назначение Си, исторические сведения. Алфавит, базовые типы и описание данных. Структуры и объединения. Операторы Си++. Функции. Библиотека времени выполнения.
курс лекций [51,9 K], добавлен 03.10.2008Возможности Mathcad для выполнения математических и технических расчетов. Графический интерфейс, инструменты для работы с формулами, числами, графиками и текстами. Операторы и логические функции для численного и символьного решения математических задач.
статья [208,6 K], добавлен 01.05.2010Символьные типы данных, работа со строками, составление блок-схемы алгоритма и программы для работы с массивами. Организация программы с использованием процедур и функций. Процедуры и функции, использующиеся при обработке файлов; компонентные файлы.
контрольная работа [52,9 K], добавлен 03.10.2010Приемы и правила объектно-ориентированного программирования с использованием языка С++. Общие принципы разработки объектно-ориентированных программ. Основные конструкции языка С++. Разработка различных программ для Windows с использованием WIN32 API.
учебное пособие [1,6 M], добавлен 28.12.2013Решение задач прикладного программирования. Оформление разработанных алгоритмов в виде графических схем. Написание программ с использованием подпрограмм, их отладка. Блок-схемы и листинг программ. Наборы тестов для отладки разработанных программ.
курсовая работа [575,8 K], добавлен 06.12.2013Понятие логических выражений, их назначение в создании алгоритмов. Список операторов сравнения, используемых в табличном редакторе Excel. Синтаксис функции "если" и примеры ее использования. Логические операторы "и", "или", "не", "истина", "ложь".
презентация [108,9 K], добавлен 07.03.2013Использование объектно-ориентированной методологии при программировании математических процессов. Среда языка программирования Delphi для решения математических задач. Объектно-ориентированные, декларативные и императивные языки программирования.
дипломная работа [1,8 M], добавлен 14.09.2011Обзор существующих моделей параллельного программирования, основные средства отладки эффективности MPI-программ, общие проблемы всех средств трассировки. Создание экспериментальной системы отладки эффективности MPI-программ, этапы работы анализатора.
дипломная работа [767,2 K], добавлен 14.10.2010Основные особенности создания работоспособных программ по решению математических задач. Рассмотрение и характеристика типовых структурных элементов схемы алгоритма: внутренний цикл, ветвление. Анализ результатов машинного тестирования программы.
контрольная работа [502,8 K], добавлен 07.01.2013