Alt linux Программирование на языке С++ в среде Qt Creator Е. Р. Алексеев, Г. Г. Злобин, Д. А. Костюк, О. В. Чеснокова, А. С. Чмыхало Москва alt linux 2015



Download 5,27 Mb.
Pdf ko'rish
bet69/193
Sana24.02.2022
Hajmi5,27 Mb.
#227496
1   ...   65   66   67   68   69   70   71   72   ...   193
Bog'liq
Book-qtC


Глава 5. Массивы
Рис. 5.1: Алгоритм обработки элементов массива
5.4.1
Ввод-вывод элементов массива
Ввод и вывод массивов также осуществляется поэлементно. Блок-схемы ал-
горитмов ввода и вывода элементов массива X[N] изображены на рис. 5.2–5.3.
Рассмотрим несколько вариантов ввода массива:
//Вариант 1. Ввод массива с помощью функции scanf.
//При организации ввода используются специальные символы: табуляция — \t
//и переход на новую строку — \n.
#include 
i n t main ( )
{
f l o a t x [ 1 0 ] ; i n t i , n ;
p r i n t f ( " \ n N = " ) ; s c a n f ( " % d " ,&n ) ; //Ввод размерности массива.
p r i n t f ( " \ n Введите элементы массива X \ n " ) ;
f o r ( i =0; i s c a n f ( " % f " , x+i ) ; //Ввод элементов массива в цикле.
//Обратите внимание, x + i — адрес i-го элемента массива.
return 0 ;
}
Рис. 5.2: Алгоритм ввода массива X[N]
Результат работы программы:
N=3
Введите элементы массива X
1.2
-3.8
0.49
Программирование на языке С++ в среде Qt Creator


5.4. Основные алгоритмы обработки массивов
141
Рис. 5.3: Алгоритм вывода массива X[N]
//Вариант 2. Ввод массива с помощью функции scanf и вспомогательной переменной b.
#include 
i n t main ( )
{
f l o a t x [ 1 0 ] , b ; i n t i , n ;
p r i n t f ( " \ n N = " ) ; s c a n f ( " % d " ,&n ) ; //Ввод размерности массива.
p r i n t f ( " \ n Массив X \ n " ) ;
f o r ( i =0; i {
p r i n t f ( " \ n Элемент % d \ t " , i ) ; //Сообщение о вводе элемента.
s c a n f ( " % f " ,&b ) ;
//Ввод переменной b.
x [ i ]=b ; //Присваивание элементу массива значения переменной b .
}
return 0 ;
}
Результат работы программы:
N=4
Массив X
Элемент 0
8.7
Элемент 1
0.74
Элемент 2
-9
Элемент 3
78
//Вариант 3. Ввод динамического массива с помощью cin.
#include 
using namespace s t d ;
i n t main ( )
{
i n t ∗X, N, i ;
cout<<" \ n N = " ; c i n >>N; //Ввод размерности массива.
X=new i n t [N ] ; //Выделение памяти для динамического массива из N элементов.
f o r ( i =0; i {
cout<<" \ n X [ "<c i n >>X[ i ] ;
//Ввод элементов массива в цикле.
}
delete [ ] X;
return 0 ;
}
Результат работы программы:
N=4
X[0]=1
X[1]=2
X[2]=4
X[3]=5
© 2015 Алексеев Е. Р., Злобин Г. Г., Костюк Д. А., Чеснокова О. В., Чмыхало А. С.


142
Глава 5. Массивы
Вывод статического или динамического массива можно осуществить несколь-
кими способами:
//Вариант 1. Вывод массива в виде строки.
f o r ( i =0; i //Вариант 2. Вывод массива в виде столбца.
f o r ( i =0; i //Вариант 3. Вывод массива в виде строки.
f o r ( i =0; i //Вариант 4. Вывод массива в виде столбца.
f o r ( i =0; i 5.4.2
Вычисление суммы элементов массива
Дан массив X, состоящий из N элементов. Найти сумму элементов этого
массива. Процесс накапливания суммы элементов массива достаточно прост и
практически ничем не отличается от суммирования значений некоторой числовой
последовательности. Переменной S присваивается значение, равное нулю, затем
к переменной S последовательно добавляются элементы массива X. Блок-схема
алгоритма расчёта суммы приведена на рис. 5.4.
Рис. 5.4: Алгоритм вычисления суммы элементов массива
Соответствующий алгоритму фрагмент программы будет иметь вид:
f o r ( S=i =0; i S+=X[ i ] ;
cout<<" S = "<5.4.3
Вычисление произведения элементов массива
Дан массив X, состоящий из N элементов. Найти произведение элементов
этого массива. Решение этой задачи сводится к тому, что значение переменной P ,
в которую предварительно была записана единица, последовательно умножается
на значение i–го элемента массива. Блок-схема алгоритма приведена на рис. 5.5.
Соответствующий фрагмент программы будет иметь вид:
f o r (P=1 , i =0; i P∗=X[ i ] ;
cout<<" P = "<
Программирование на языке С++ в среде Qt Creator


5.4. Основные алгоритмы обработки массивов
143
Задача 5.1.
Задан массив целых чисел. Найти сумму простых чисел и произве-
дение отрицательных элементов массива.
Алгоритм решения задачи состоит из следующих этапов.
1. Вводим массив X[N].
2. Для вычисления суммы в переменную S записываем значение 0, для вы-
числения произведения в переменную P записываем 1.
3. В цикле (i изменяется от 0 до N-1 с шагом 1) перебираем все элементы
массива X, если очередной элемент массива является простым числом, до-
бавляем его к сумме, а если очередной элемент массива отрицателен, то
умножаем его на P .
4. Выводим на экран значение суммы и произведения.
Рис. 5.5: Вычисление произведения элементов массива
Блок-схема решения задачи представлена на рис. 5.6. Для решения задачи
применим функцию (prostoe) проверки, является ли число простым. Текст про-
граммы с подробными комментариями приведён далее.
#include 
using namespace s t d ;
//Текст функции prostoe.
bool p r o s t o e ( i n t N)
{
i n t i ;
bool pr ;
i f (N<2) pr=f a l s e ;
e l s e
f o r ( pr=true , i =2; i <=N/ 2 ; i ++)
i f (N%i ==0)
{
pr=f a l s e ;
break ;
}
return pr ;
}
i n t main ( )
{
i n t ∗X, i , N, S , P ;
cout<<"Введите размер массива " ; c i n >>N; //Ввод размерности массива.
X=new i n t [N ] ; //Выделение памяти для хранения динамического массива X.
cout<<"Ведите массив X \ n " ; //Ввод массива X.
f o r ( i =0; i © 2015 Алексеев Е. Р., Злобин Г. Г., Костюк Д. А., Чеснокова О. В., Чмыхало А. С.


144
Download 5,27 Mb.

Do'stlaringiz bilan baham:
1   ...   65   66   67   68   69   70   71   72   ...   193




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©hozir.org 2024
ma'muriyatiga murojaat qiling

kiriting | ro'yxatdan o'tish
    Bosh sahifa
юртда тантана
Боғда битган
Бугун юртда
Эшитганлар жилманглар
Эшитмадим деманглар
битган бодомлар
Yangiariq tumani
qitish marakazi
Raqamli texnologiyalar
ilishida muhokamadan
tasdiqqa tavsiya
tavsiya etilgan
iqtisodiyot kafedrasi
steiermarkischen landesregierung
asarlaringizni yuboring
o'zingizning asarlaringizni
Iltimos faqat
faqat o'zingizning
steierm rkischen
landesregierung fachabteilung
rkischen landesregierung
hamshira loyihasi
loyihasi mavsum
faolyatining oqibatlari
asosiy adabiyotlar
fakulteti ahborot
ahborot havfsizligi
havfsizligi kafedrasi
fanidan bo’yicha
fakulteti iqtisodiyot
boshqaruv fakulteti
chiqarishda boshqaruv
ishlab chiqarishda
iqtisodiyot fakultet
multiservis tarmoqlari
fanidan asosiy
Uzbek fanidan
mavzulari potok
asosidagi multiservis
'aliyyil a'ziym
billahil 'aliyyil
illaa billahil
quvvata illaa
falah' deganida
Kompyuter savodxonligi
bo’yicha mustaqil
'alal falah'
Hayya 'alal
'alas soloh
Hayya 'alas
mavsum boyicha


yuklab olish