1. Бүтін сандардан тұратын массивтың нөлдік сандардың санын есептейтін бағдарлама құрыңыз.
2. Пернетақтадан бос емес сандардан тұратын массив енгізіліп, егер ол симметриялы болса Yes, басқа жағдайда No деген хабарлама шығатын бағдарлама құрыңыз.
3. Пернетақтадан бос емес сандардан тұратын массив енгізіліп, циклдық түрде массив элементтерін бір позиция оңға қозғап нәтижесін шығаратын бағдарлама құрыңыз. Массивтың соңғы элементі жаңа массивтың бірінші элементінің орнына тұрады.
4. Пернетақтадан бос емес сандардан тұратын массив енгізіліп, циклдық түрде массив элементтерін позицияға оңға қозғап нәтижесін шығаратын бағдарлама құрыңыз. саны клавиатурадан енгізіледі, бағдарламаның күрделілігі болу керек.
9-10 практикалық жұмыс. «Дәлелдеу», «Алгоритм», «Анықталғандық» және «Тиімді есептеу» ұғымдары
Мысал Бүтін сандар тізбегін енгізіп максимал элементтерін анықтайтын бағдарлама құрыңыз.
Бағдарламада белгілі бір шектеулер қолданылады. Біріншіден, элементтер тізбегін құрған кезде массивты қолдануға болмайды. Екнішіден, элементтер енгізе отыра, бағдарлама максимал элементті сол жерде анықтап отыруы керек. Үшіншіден, кез-келген тізбек ұзындығымен жұмыс істеуі керек.
Бағдарлама мәтіні
package kz;
import java.util.Scanner;
public class NumMaxArr {
public static void main(String[] args) {
Scanner Scan=new Scanner(System.in);
System.out.println("n жиымының ұзындығын енгізіңіз -> ");
int n, i, a[];
n = Scan.nextInt();
a = new int[n];
int max = Integer.MIN_VALUE;
int nMax = 0;
for (i=0; i
a[i] = Scan.nextInt();
System.out.println("Енгізілген a жиымы =");
if (a[i] > max) {
max = a[i];
nMax = 1;
} else if (a[i] == max)
nMax += 1;
}
System.out.println("максимал элементтер саны = " + nMax);
}
}
Бұл бағдарлама ерекше жағдайларда қолданылатын try-catch конструкциясын қолданады. Келтірілген бағдарламада try блогы шексіз циклге алынған, бұл циклден ерекше жағдай болған кезде ғана шығу мүмкіндігі бар. Аталған жағдайда мұндай жағдайдың болуы тек кезекті элементті енгізуде ғана болуы мүмкін. Мұндай жағдай басқару catch блогына беріледі, ол бағдарламаның аяқтауына әкеледі.
Бағдарлама максимал элементтер санын әрбір енгізіліген элементтен кейін басып шығарып отырады. Егер ол қажет болмаса, нәтижені шығару операторы catch блогына ауыстырылады:
try {
while (true) {
int x;
Scanner Scan=new Scanner(System.in);
System.out.println("Кезекті x элементі -> ");
if (x > max) {
max = x;
nMax = 1;
} else if (x == max)
nMax += 1;
}
} catch(Exception e) {
System.out.println ("\n максимал элементтер саны = "
+ nMax);
}
Мысал 0 мен 100 аралығында кезейсоқ сандардан 7*7 матрицасын экранға шығарып, кему ретінде сұрыптаңыз. Екі массивті де экранға шығарыңыз.
Бағдарлама мәтіні
package arrays_1;
import java.util.Random;
publicclass Arrays_5 {
publicstaticvoid main(int y[][]) {
int temp;
boolean t = true;
while(t)
{
t = false;
for(int i = 0; i < y.length; i++)
{
for(int j = 0; j < y.length; j++)
{
if( j==y.length-1 && i==y.length-1)
break;
if ( j != y.length-1)
{
if(y[i][j] < y[i][j+1])
{
temp = y[i][j];
y[i][j] = y[i][j+1];
y[i][j+1] = temp;
t=true;
}
}
else
{
if(y[i][j] < y[i+1][0])
{
temp = y[i][j];
y[i][j] = y[i+1][0];
y[i+1][0] = temp;
t=true;
}
}
}
}
}
}
publicstaticvoid main(String[] args)
{
int numElem = 7;
int[][] x = newint[numElem][numElem];
Random r = new Random();
for(int i =0; i
{
for(int j = 0; j
{
x[i][j] = r.nextInt(100);
}
}
System.out.println("Сұрыпталмаған массив:");
System.out.println(" ");
for(int i = 0; i
{
for(int j = 0; j
{
System.out.print(x[i][j]+ " ");
}
System.out.println();
}
System.out.println(" ");
System.out.println("Сұрыпталған массив:");
System.out.println(" ");
main(x);
for(int i = 0; i
{
for(int j = 0; j
{
System.out.print(x[i][j]+ " ");
}
System.out.println();
}
System.out.println(" ");System.out.println(" ");
}
}
Мысал Жолдық массив түрінде ISOOSI моделінің 7 деңгейін басып шығарыңыз.
Бағдарлама мәтіні
package arrays_1;
publicclass Arrays_copy_1 {
publicstaticvoid main(String[] args) {
System.out.println("ISO OSI жүйесінің эталондық моделі" );
System.out.println(" " );
int ISO_OSI = 7; //массивтегі элементтер саны
String layer [] ;
int i=ISO_OSI; // массивты ұйымдастыру
layer = new String[ISO_OSI]; //массивтың инициализациясы
layer[0] = "physical layer";
layer[1] = "data link layer";
layer[2] = "network layer";
layer[3] = "transport layer";
layer[4] = "session layer";
layer[5] = "presentation layer";
layer[6] = "application layer";
for (i=0; i
System.out.println("Эталондық моделі - " + layer[i]);
}
}
Мысал Массив элементтерінің санын сұрататын i-ші элементтің мәнін және массивтың 0-ге тең емес элементтердің санын шығаратын бағдарлама құрыңыз.
package arrays_1;
import java.util.Scanner;
publicclass Arrays_4 {
publicstaticvoid main(String[] args)
{
Scanner scaner = new Scanner(System.in);
System.out.print("Массив элементтерінің санын енгізіңіз: ");
System.out.println(" "); System.out.println(" ");
int masLength = scaner.nextInt();
int[] mas = newint[masLength];
int i,j;
for(i = 0; i < mas.length; i++)
{
j = i+1;
System.out.print("Массивтың № элементің енгізіңіз"+j+" :");
mas[i] = scaner.nextInt();
}
int count = 0;
for(i = 0; i < mas.length; i++)
{
if(mas[i] != 0)
{
count++;
}
}
System.out.println(" ");
System.out.println("Нөлге тең емес элементтер саны: "+count);
}
}
Тапсырмалар
1. Пернетақтадан бос емес сандардан тұратын массив енгізіп, шеткі элементтерден басқа элементтердің екі көрші элементінің жартылай қосындысымен алмастыратын және нәтижесін шығаратын бағдарлама құрыңыз.
2. санының массивке бірінші рет (ол сан массивтың құрамында болу керек) енуін анықтайтын бағдарлама құрыңыз (сызықтық іздеу).
3. Сандарды пернетақтадан енгізіп, олардың арифметикалық ортасын есептейтін бағдарлама құрыңыз (бос емес тізбек үшін)
4. Пернетақтадан енгізілген сандардың қатар орналасқан бірдей сандардың ең үлкенін көрсететін бағдарлама құрыңыз.
5. Пернетақтадан енгізілген сандардың ішінен максимал санның бірінші және соңғы реттік орнын анықтайтын бағдарлама құрыңыз.
6. Пернетақтадан енгізілген сандардың ішінен нөлдік элементтің реттік нөмірін көрсететін, ал нөль болмаған жағдайда 0-дің өзін көрсететін бағдарлама құрыңыз.
7. Пернетақтадан енгізілген сандардың ішінен алдыңғы саннан үлкен болатын сандардың санын есептейтін бағдарлама құрыңыз (тізбектің бірінші элементі саналады).
8. Орыс тілінде енгізілген сөздің палиндром екенін тексеретін бағдарлама құрыңыз ( inputChars әдісін қолданып).
Нұсқау. Палиндром – солдан оңға немесе оңнан солға оқыса бірдей болатын сөздер. Сөздегі бос орындар ескерілмейді.
9. Егерпредикат , ал болған жағдайды болатындығын жазып көрсетіңіз.
Шешуі. Аталған жағдайда бәрі де анық:
.
Мысал Пернетақтадан енгізілген санның оң сан екендігін тексеретін бағдарлама құрыңыз.
Бағдарлама мәтіні
public class Assert {
public static void main(String[] args) throws Exception {
int n ;
Scanner scan = new Scanner(System.in);
System.out.print("n енгізіңіз ->");
if (n <= 0)
throw new Exception("n <= 0");
System.out.print("n = " + n);
}
}
Теріс сан енгізілген жағдайда бағдаралама жұмысы тоқтап келесі мәтінді шығарады:
java.lang.Exception: n<=0
at Assert.main(Assert.java:4)
10. Келесі пікірдің біреуі ең үлкен болатынын көрсететін пікірді жазыңыз:,.
11. Келесі пікірлердің бір уақытта ақиқат бола алмайтынын көрсететін пікірді жазыңыз:,және.
12. , жағдайда болады, бірақ, егер , онда орындалмайды, егер , онда болатын пікірді жазыңыз.
13. ұзындықтағы массиві үшін барлық нөлдер аралықта жататын пікірді жазыңыз.
14. ұзындықтағы массиві үшін кейбір нөлдер аралықта жататын пікірді жазыңыз.
11-12 практикалық жұмыс. Есептерді шешудегі рекурсивты әдісі (программалау)
Мысал 1-ден N-ге дейінгі сандардың жұп сандарының квадратын және тақ сандарының кубын есептейтін бағдарлама құрыңыз.
Бағдарлама мәтіні
package triangle_figure;
import java.util.*;
publicclass Arifmetics {
publicstaticboolean odd(int value) {
return (value& 1) != 0;// }
publicstaticvoid main(String[] args) {
int sum_square = 0, sum_cube = 0, counter = 1, N;
Scanner scan = new Scanner(System.in);
System.out.print("N санын енгізіңіз: ");
System.out.print(" ");
N = scan.nextInt();
while(counter <= N) {
if(!odd(counter))
sum_square += Math.pow(counter, 2.0);//квадраттау
else
sum_cube += Math.pow(counter, 3.0);//кубтау
++counter;
}
System.out.println("Жұп сандардың квадраттарының қосындысы" +N +": "+ sum_square);
System.out.println("Тақ сандардың кубтарының қосындысы" +N +": "+ sum_cube);
}
}
Мысал Ұзындығы m массивтың әрбір үшінші элементін оған дейінгі екі элементтің жартылай қосындысымен, ал оның алдындағы элементті одан кейінгі екі элементтің жартылай қосындысымен алмастырыңыз.
Бағдарлама мәтіні
package triangle_figure;
import java.util.Random;
import java.util.Scanner;
publicclass Arifmetics_4 {
publicstaticvoid main(String[] args) {
Random rnd = new Random();
Scanner scanner = new Scanner(System.in);
// Ұзындығын енгізу
System.out.println("Массивтың ұзындығын енгізіңіз: ");
int m = scanner.nextInt();
// Массивты толтыру
int[] array = newint[m];
System.out.print("Алғашқы массив: ");
for (int i = 0; i < m; i++) {
array[i] = rnd.nextInt(100);
System.out.print(array[i] + " ");
}
System.out.println();
//
for (int index = 1; index < m - 2; index++) {
// 0-ден бастап санаса әрбір үшінші элемент
if (index % 3 == 2) {
array[index] = (array[index - 1] + array[index - 2]) / 2;
// Одан кейінгі
array[index + 1] = (array[index] + array[index + 2]) / 2;
}
}
// Нәтижесінде алынған массив
System.out.print("Нәтижесіндегі массив: ");
for (int i = 0; i < m; i++) {
System.out.print(array[i] + " ");
}
System.out.println();
}
}
Достарыңызбен бөлісу: |