русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

МАССИВТЕР


Дата добавления: 2015-06-12; просмотров: 2716; Нарушение авторских прав


. . . . .

<n-оператор>;

}

Мұнда x=x0; цикл айнымалысының бастапқы мәні, x<=xk; циклдің орындалу шарты,x=x+dx цикл айнымалысының қадамы. x=x0 цикл операторы орындаларда бір рет есептеледі, x<=xk ақиқат болса немесе 0-ге тең болмаса, цикл тұлғасы ретіндегі операторлар атқарылады. Содан соң x=x+dx есептеледі және x<=xk мәні қайта анықталады. x<=xk мәні жалған болса немесе жалпы жағыдайда ол 0-ге тең болса, for операторының жұмысы аяқталады.

Орындалу саны алдын ала белгісіз болатын циклдер құру кезінде шарттары алдын ала немесе соңынан тексерілетін екі цикл түрі бар. Шарты алдын ала тексерілетін цикл операторының жазылуы:

While (шарт-өрнек) оператор.

Алғашында шарт өрнек есептелінеді. Егер нәтиже true болса, онда циклды құрайтын оператор орындалады. Сонан кейін қайта шарт-өрнек есептелінеді және оператор орындалады, false мәні алынғанға дейін орындалады. Егер нәтиже басынан false болса, онда оператор ешбірде орындалмайды. Содықтанда оператор while негізгісі болып кейбір тілдерде циклдың жалғыз операторы болып табылады. Циклда оператор бос болуы мүмкін. Шексіз циклды ұйымдастыру мүмкін: while (true) оператор егер циклға бірнеше операторларды енгізу керек болса, онда операторлар блогын {} құру керек.

Жұмысты орындау мысалы 1:Кездейсоқ 10 сандардың ішінен тізбектелген туындыны және қосындыны есептеу.

public class ForCycle {

public static void main(String[] args) {

int tmp = 0;

long tmp2 = 1;

System.out.print("Сумма\t\tТуынды \n");



for(int i=0;i<10;i++){

tmp += (int)Math.round(Math.random()*10);

tmp2 = tmp2*tmp;

System.out.print(tmp+"\t\t"+tmp2+"\n");

}

}

}

main() негізгі әдісін хабарлаймыз. Хабарламада tmp айнымалы int типті

int типті tmp айнымалысын хабарлағанда оған ең алдымен бастапқы мәнді меншіктейміз (tmp=0, 03 жолындағы tmp айнымалысының инициализациясы). tmp айнымалысында кездейсоқ сандар тізбегінен құралған 10 қосынды сақталады. Ары қарай long типті tmp2 айнымалыны хабарлаймыз, онда төртінші жолдағы тізбегінің мәндері сақталады. Тізбектелген қарапайым санның генерациясы Math.random() стандартты функциясының орындалуымен жүзеге асады, ол кездейсоқ санды 0 мен 1 диапазонында қалпына келтіреді. Содан кейін санды 10-ға көбейтеміз және Math.round() дөңгелектейміз.

 

Жұмысты орындау мысалы 2: Герон формуласын пайдалана отырып санның квадрат түбірін есептеу.

public class Sqrt {

static void sqrt(long a){

double b=a;

int i=0;

while ((b*b>a)&&(i<200)){

b=(b+a/b)/2;

i++;

}

System.out.print(b);

}

public static void main(String[] args) {

sqrt(45);

}

}

Санның квадратар түбірін есептеу үшін Герон формуласы :

пайдаланылады. Ол үшін ((b*b>a)&&(i<200)) шартты while циклін қолданамыз. Жаңа бір параметрлі long типті sqrt() әдісін хабарлаймыз. b айнымалысына хабарламада double типті бастапқы мәнді енгіземіз (b=a, жолындағы b типті айнымалы). b айнымалысында b=(b+a/b)/2 Герон формуласымен есептелетін түбірдің аралық мәнін сақтаймыз. Одан кейін int типті i айнымалыны хабарлап, оны 0 мәніне теңейміз.

Ары қарай ((b*b>a)&&(i<200)) шартты While циклі жалғасады. Бұл шарт екі шарттан тұрады: b квадрат бастапқы а мәнінен артық болу керек және санауыштың мәні 200-ден аспау керек, яғни барлығы 200 итерация орындалады. Берілген цикльде b айнымалысында сақталатын Xn кезекті мәні есептеледі. B айнымалысы әрбір қадамда өзгеріп отырады, осы берілген айнымалының мәні алдыңғы мәнге тәуелді болады. Циклдың соңында і++ жолында санауышты 1-ге арттырамыз. Әдістің соңында консолды терезеге алынған b мәнін шығарамыз.

main() әдісінде sqrt(45) әдісі шақырылады. Парамерт ретінде (45) туынды тұтас санды алуға болады, ол а айнымалысына меншіктеледі қандай да бір әдісті static модификаторы бар әдістен тікелей шақырту тек қана шақырылатын әдіс статикалық болған жағдайда ғана жүзеге асады.

 

Зертханалық жұмысқа берілген тапсырмалар

 

Қатардың қосындысын есептеудің блок схемасын және бағдарламасын жазыңыз.

 

1. n натурал сан берілген. Есептеу керек:2n.

2. n натурал сан берілген. Есептеу керек: n!

3. n натурал сан берілген. Есептеу керек:

.

4. n натурал сан берілген. Есептеу керек:

.

5. n натурал сан берілген. Есептеу керек:

; (n түбірлі).

6. n натурал сан берілген. Есептеу керек:

7. n натурал, а нақты сандар берілген. Есептеу керек: аn.

8. n натурал, а нақты сандар берілген. Есептеу керек:а(а+1)(a+2)...(а+n-1).

 

9. n натурал, а нақты сандар берілген. Есептеу керек:

10. n натурал, а нақты сандар берілген. Есептеу керек:

11. n натурал, а нақты сандар берілген. Есептеу керек:

а(а- n)*(а-2 n)...(а- n2).

12. x нақты сан берілген. Есептеу керек:

13. x нақты сан берілген. Есептеу керек:

14. n натурал, х нақты сандар берілген. Есептеу керек:

sinx+sin2x+…+sin2x

15. 16.

 

 

17. Есептеу керек: 18.

 

 

19. 20.

 

 

21. 22.

 

23. 24.

 

Зертханалық жұмысты орындау реті

1. Әдістемелік нұсқаулармен танысу.

2. Әр студент берілген мысалды пайдаланып өзіне берілген есептің (варианттің) нәтижесін алу керек.

3. Әр вариант үшін зертханалық дәптерді толтырып оқытушыға тапсыру.

4. Бақылау сұрақтарына жауап беру.

 

 

Бақылау сұрақтары:

1. Параметрлі қайталау операторы дегеніміз не?

2. Параметрлі қайталау операторының жазылу форматы?

3. Қайталау саны белгілі болған жағыдайда орындалатын оператордың жазылу форматы қандай?

4. For While операторының блок-схемасын сызыңыз?

5. Қайталау саны белгілісіз болған жағыдайда орындалатын оператордың жазылу форматы қандай?

 

№7 Зертханалық жұмыс

 

МАССИВТЕР

Жұмыстың мақсаты: Java қосымшасында массивтерді программада қолдануды үйрену.

Теориялық мағлұмат

Бағдарламалауда массив – бұл оперативті жадтың сыбайлас ұяшықтарында сақталатын бір түрлі айнымалылар жиынтығы. Java тілінде массивтер сілтеме түріне қарайды.Сиппатталуыүшкезеңненорындалады. Бірінші кезең жариялау (declaration). Бұл кезеңде массив түрін еленетін массивке сілтеме reference) түріндегі айнымалы анықталынады. Массивтерді сипаттау үшін тік жақша қолданамыз.

Мысалы, double [] a, b;

Екінші кезең – анықтау (installation). Бұл кезеңде айнымалы-сілтеме массив адресін алады, массивке оперативті жадта орын бөлінеді, массивтің ұзындығы болып аталатын массив элементерінің саны көрсетіледі. Осы әрекеттердің барлығы Java тілінің тағыда бір операциясымен орындалады – операция түрі new.

Мысалы, a = new double[5]; b = new double[100];

Үшінші кезең – инициализация (initialization). Бұл кезеңде массив элементтері бастапқы мәндерін алады.

Мысалы, a[0] = 0.01; a[1] = -3.4; a[2] = 2:.89; a[3] = 4.5; a[4] = -6.7;

 

Жұмысты орындау мысалы 1:Массив элементтерінің ең кішісін табу және массив элементтерін сұрыптау.

public class Arrays {

public static short minX(){

short x=0;

short[] array = new short[10];

System.out.print("Негізгі массив: ");

for(int i=1;i<10;i++){

array[i]=(short)Math.round(50*Math.random());

System.out.print(array[i]+", ");

}

x=array[0];

for(int i=1;i<10;i++){

if(x>array[i]){

x=array[i];

}

}

Return x;

}

public static void sort(){

short temp;

short[] array = new short[10];

System.out.print("\n негізгі массив: ");

for (int i=0;i<10;i++){

array[i]=(short)Math.round(50*Math.random());

System.out.print(array[i]+", ");

}

System.out.print("\n сұрыпталған массив: ");

for(int i=0;i<9;i++){

for(int j=9;j>i;j--){

if(array[j-1]>array[j]){

temp=array[j];

array[j]=array[j-1];

array[j-1]=temp;

}

}

System.out.print(array[i]+", ");

}

}

public static void main(String[] args) {

System.out.print("\n ең кіші элемент: "+minX());

sort();

}

}

Берілген бағдарламада екі әдіс қолданылады minX() және sort().

Көрсетілген әдістердің әрқайсысында бір массивтен сипатталады, әр массив үшін он элементтің жадысы бөлінеді. Содан кейін Math.random() әдісінің көмегімен кездейсоқ сандардың массивтерін толтыру жүзеге асады. (short) түрлендіруі арқылы алынған double типінің мәнін short типінің мәндеріне түрлендіру керек. Массивтер дайын болғаннан кейін олармен түрлі әрекеттер жасауға болады. minX() әдісі алынған массивтерінен минималды элементті іздейді. Екінші әдіс алынған массивті сұрыптайды. Содан кейін элементтер мәнін көрсетеді.

main() әдісінен minX() және sort(). әдістерін шақыртамыз. minX() әдісі жолдық типтің мәнін қалпына келтіретіндіктен, оны System.out.print() аргументінің конструкциясы ретінде пайдалануға болады.

Java тілінде көп өлшемді массив жоқ. Бірақ көп өлшемді массив тәрізді, бірнеше айырмашылықтарымен массивтің массиві бар.

Төменде көрсетілген массивте double типті он алтылық элементтік матрица құрылған. Бұл матрицаның ішкі реализациясы double массивінің массиві.

double matrix [][] = new double [4][4];

Келесі код фрагментте матрицаға матрица кірістірілгендігі көрсетіледі.

double matrix [][] = new double [4][];

matrix [0] = new double[4];

matrix[1] = new double[4];

matrix[2] = new double[4], matrix[3] = { 0, 1, 2, 3 };

 

Жұмысты орындау мысалы 2:Мысалда double типті элементтен 4*4 өлшемді матрица құрылады, диогнальды элементтері бірмен, қалған элементтері нөлмен толтырылады.

class Matrix {

public static void main(String args[]) { double m[][];

m = new double[4][4];

m[0][0] = 1;

m[1][1] = 1;

m[2][2] = 1;

m[3][3] = 1;

System.out.println(m[0][0] +" "+ m[0][1] +" "+ m[0][2] +" "+ m[0][3]);

System.out.println(m[1][0] +" "+ m[1][1] +" "+ m[1][2] +" "+ m[1][3]);

System.out.println(m[2][0] +" "+ m[2][1] +" "+ m[2][2] +" "+ m[2][3]);

System.out.println(m[3][0] +" "+ m[3][1] +" "+ m[3][2] +" "+ m[3][3]);

}

}

 

Зертханалық жұмысқа берілген тапсырмалар

 

Тапсырмалар нұсқасы:

 

1. Берілген A[20] масссивтің теріс элементтерінің қосындысын есептейтін программа құру. Массив элементтері бүтін сан.

2. Берілген B[15] масссивтің оң элементтерінің қосындысын есептейтін программа құру.Массив элементтері бүтін сан.

3. Берілген A[12] масссивтің теріс элементтерінің көбейтіндісін есептейтін программа құру.Массив элементтері нақты сан.

4. Берілген C[25] масссивтің оң элементтерінің көбейтіндісін есептейтін программа құру.Массив элементтері нақты сан.

5. Масссив D[17] элементтерінің арифметикалық ортасын есептейтін программа құру.Массив элементтері нақты сан.

6. Берілген A[10,10] масссивтің қатар бойынша теріс элементтерінің қосындысын есептеп жауабын B[10] массивіне меншіктейтін программа құру.Массив элементтері бүтін сан.

7. Берілген B[5,5] масссивтің қатар бойынша оң элементтерінің қосындысын есептейтін есептеп жауабын A[5] массивіне меншіктейтін программа құру.Массив элементтері нақты сандар.

8. Берілген A[12,6] масссивтің бағаны бойынша теріс элементтерінің көбейтіндісін есептейтін программа құру.Массив элементтері нақты сан.

9. Берілген C[5,5] масссивтің негізгі диогналдың оң элементтерінің көбейтіндісін есептейтін программа құру.Массив элементтері бүтін сандар.

10. Масссив D[7,7] элементтерінің негізгі диогнал элементтерінің арифметикалық ортасын есептейтін программа құру.Массив элементтері нақты сандар.

11. Бүтін сандардан тұратын массив берілген A(n), мұндағы n=1,25. Оның максимал және минимал элементтерін ауыстыру қажет.

12. Бүтін сандардан тұратын массив берілген B(n), мұндағы n=1,25 Массивті өсу реті бойынша орналастыру керек.

13. Бүтін сандардан тұратын массив берілген С(n), где n=1,20 орташа мәнін тауып, оны консолға шығару керек.

14. Бүтін сандардан тұратын массив берілген D(n), где n=1,30. Массив элементтерінің тақ және жұп қосындысын табу керек.

15. (a(i,j)< 10) кездейсоқ сандардың 3х5 кестесін консолға шығаратын бағдарлама құрыңдар.

16. мысалдағы бағдарламаны консолға максималды элемент шығаратындай етіп өзгерту (мысалы жаңа maxX() әдісті сипаттау көмегімен).

17. s1, s2, s3, s4 и s5 бес жол берілген, егер s4 s5 жолына тең болса, онда s1 және s2 жолдарын немесе s1 және s3 жинақтау керек.

 

Зертханалық жұмысты орындау реті

1. Әдістемелік нұсқаулармен танысу.

2. Әр студент берілген мысалды пайдаланып өзіне берілген есептің (варианттің) нәтижесін алу керек.

3. Әр вариант үшін зертханалық дәптерді толтырып оқытушыға тапсыру.

4. Бақылау сұрақтарына жауап беру.

Бақылау сұрақтары:

1. Массив дегеніміз не?

2. Бір өлшемді және екі өлшемді массивтердің айырмашылығы неде?

3. Java тілінде массивтерді қандай қызметші сөз арқылы сипаттаймыз?

4. Массив индекстері дегеніміз не?

5. Массив элементтері қандай типтерге жатады?

 

№8 Зертханалық жұмыс

 

ЖОЛДАРМЕН ЖҰМЫС

Жұмыстың мақсаты: Java қосымшасында жолдарды пайдаланып программа құруды үйрену.

 

Теориялық мағлұмат

 

Ақпарат өңдеу кезінде мәтіндермен жұмыс істеу елеулі орын алады. Java тілінде мәтіндік жолдар объектілер болып табылады. Олар string класының немесе stringBuffer класының көшірмелерін көрсетеді.

Бастапқыда ол өте үлкен болып көрінгенімен, кейінірек жолдармен жұмыс істеп үйренгеннен кейін класстармен жұмыс істеу ыңғайлылығын бағалайсыз. Әрине, char типті символдар масивіне мәтінді немесе byte типті массивтерді енгізу мүмкін болса, онда мәтіндік жолдармен жұмыс істеудің дайын тәсілдерін қолдануға болады. Жолдармен жұмыс істейтін функциялар:

Strcat.Синтаксисі: char *strcat (char * Жол1, const char* Жол2 ). Жол1 және Жол2 жолдарын біріктіреді және нәтижені Жол1-ге жолға жазады.



<== предыдущая лекция | следующая лекция ==>
Обработка событий с помощью внутренних классов | Strtok.


Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.

Генерация страницы за: 2.327 сек.