русс | укр

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

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

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

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


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

Strtok.


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


Синтаксисі:char*strtok (char*Жол, const char*Бөлгіштер_ Жол). Адрестелген Жол жолды Бөлгіштер_Жолын көрсететін, әрқайсысы жолдың символдарымен анықталатын лексем тізбектеріне бөледі. Бірінші шақыруда strtok функциясы бірінші аргумент ретінде Жол мәніне ие болады, келесі барлық шақыруларда бірінші параметр ретінде нөлінші көрсеткіш, яғни NULL беріледі.

Библиотекалық функциялар strtok функциясын шақыру керек. strtok функциясы көрсеткішті белгіленген лексемнің бірінші символына қайтарады немесе егер лексемдер табылмаса, нөлінші көрсеткішті қайтарады.

Java тіліне неліктен жолдарды сақтау үшін екі класс енгізілгенін қарастырайық. String класының объектілерінде өзгермейтін ұзындықтағы жолдар-константалар және оның құрамы сақталады. Бұл жолдардың өңделу уақытын қысқартады және объектілер арасында қолданылатын жолдарды бөле отырып, жадыны үнемдеуге мүмкіндік береді.

StringBuffer класының объектілерінде сақталатын жолдың ұзындығына символдар мен жолдарды қоса отырып, ішкі жолдарды жойып немесе бірнеше жолды бір жолға біріктіре отырып өзгертуге болады. Көп жағдайда string типті жолдың ұзындығын өзгерту керек болған жағдайда, Java компиляторы оны stringBuffer типіне алмастырады, оның ұзындығын өзгертеді, содан кейін string типіне қайта түрлендіреді.

Мысалы, келесідей:

String s = "Бұл" + "бір" + "жол";

компилятор былай орындайды:



String s = new StringBuffer().append("Бұл").append("бір")

.append("жол").toString();

 

StringBuffer класының объекті құрылады, оған "Бұл", "бір", "жол" жолдары тізбектеле қосылады және нәтижесіндегі StringBuffer класының объектісі toString () тәсілімен String тпіне келтіріледі.

Жолдардағы символдар Unicode кодталуында сақталады, ондағы әрбір символ екі байт орын алады. Әр символдың типі сhar.

 

Жұмысты орындау мысалы 1:Жолдармен жұмыс істеу

public class Strings {

public static String compare(String s1, String s2){

String s3="";

if (s1.equals(s2)){

s3="Жол \""+s1+"\" и \""+s2+"\" тең";

} else {

s3="Строки \""+s1+"\" и \""+s2+"\" тең емес";

}

Return s3;

}

public static String add(String s1, String s2){

System.out.print("\nНәтиже\""+s1+"\" и

"+"\""+s2+"\": ");

s1+=" "+s2;

return s1;

}

public static void main(String[] args) {

System.out.println(compare("АБВГ","АБВ"));

System.out.print(compare("АБВ","АБВ"));

System.out.print(add("Hello","World"));

}

 

}

Қосымшада екі жолды қосып және салыстыратын екі әдіс қолданылады. Бірінші compare() әдісі екі жолды салыстырып және оның нәтижесін консолға шығарады. Салыстыру жолында equals() функциясының көмегімен жүзеге асады. Егер жолдар сәйкес келсе, онда берілген функция true мәнін қайтарады. Егер жолдар тең болса (бірдей символдар тізімі болса), онда бесінші жолдағы немесе жетінші жолдағы хабар беріледі. s3 жолының қосу конструкциясында Escape тізбектелген символдары келтірілген.

Екінші әдісте «+» операциясының көмегімен жолдардың қарапайым бірігуі орындалады.

 

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

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

1. Символдар жолы берілген. “а” әріпінен басталатын сөздердің санын тауып, “а” әріпінен басталатын ең ұзын сөзді баспаға шығару.

2. Символдар жолы берілген. Жолдарды түрлендіріп анықтау.

а) барлық леп белгілерін нүктемен; б) әр нүктені үш нүктемен ауыстырып, жолды түрлендіру.

3. Символдар жолы берілген. Әрбір “*” символ өшіріп, “*”символынан басқа символдарды қайталау.

4. Символдар жолы берілген. Әріп топтарының қанша рет қайталанатынын анықтау:

а) abc; б) aba.

5. Символдар жолы берілген. Бірінші және соңғы символдары өзара сәйкес келетін сөздердің санын анықтау.

6. Ішінде ең болмағанда бір нүктесі бар символдар жолы берілген. Бірінші кездескен нүктеге дейінгі үтірлердің бәрін өшіріп, нүктеден кейінгі “5” цифрын “+” белгісімен ауыстыру.

7. Символдар жолы берілген. “я” әріпінен басталатын ең ұзын сөзді тауып, кері ретпен шығару.

8. Символдар жолы берілген. Дауыссыз әріптен басталатын ең ұзын сөзді тауып, жолдағы ең соңғы сөзбен орынын ауыстырып шығару.

9. Символдар жолы берілген. “а” әріпінен басталатын ең қысқа сөзді тауып, жолдағы ең бірінші сөзбен орынын ауыстырып шығару.

10. Символдар жолы берілген. Жолдағы әріп емес символдардың бәрін өшіріп, кіші әріптерді сәйкес бас әріптермен ауыстыра отырып, түрлендіру.

11. Символдар жолы берілген. (a, e, i, o, u) латын дауысты әріптері көп кездесетін барлық сөздерді табу.

12. Текст берілген. Ең ұзын цифр тобын тауып, оны соңғы цифр тобымен ауыстыру.

13. Текст берілген. “а”, “в” әріптері ең көп кездесетін сөздерді тауып, тексттен өшіру.

14. Текст берілген. “а” әріпі ең кемінде екі рет кездесетін сөздерді табу.

15. Текст берілген. “9” санынан басталатын ең қысқа сөзді тауып, жолдағы ең бірінші сөзбен орынын ауыстырып шығару.

16. Бос орындармен бөлінген текст берілген. “я” әріпінен басталып, “я” әріпінен аяқталатын сөзді тауып, тексттен өшіру.

17. Бос орындармен бөлінген текст берілген. “я” әріпінен басталып, “я” әріпінен аяқталатын ең ұзын сөзді табу.

18. Бос орындармен бөлінген цифр топтарынан тұратын текст берілген. “1” санынан басталып, “1” санынан аяқталатын ең ұзын цифр тобын тауып, бірінші цифр тобымен алмастыру.

19. Текст берілген. Тексттің алғашқы үш сөзінде “р” қанша рет қайталанатынын табу.

20. Текст берілген. Егер текстте “*” символы болмаса, текстті өзгеріссіз қалдыру, кері жағдайда “*” символына дейін орналасқан кіші латын әріптерін “5” цифрымен алмастыру.

 

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

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

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

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

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

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

1. CASE операторында таңдау белгісінің типі қай типке жатуы мүмкін?

2. Жолдарды біріктіру үшін стандартты процедуралар мен функциялардың қайсысы қолданылады?

3. Struprфункциясы не үшін пайдаланылады?

4. S жолының элементтерінің бас әріптерін сәйкесінше кіші әріпке айналдыратын функцияны атаңыз.

 

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

 

ҚОЛДАНУШЫНЫҢ ГРАФИКАЛЫҚ ИНТЕРФЕЙСІМЕН ЖҰМЫС ІСТЕУ

Жұмыстың мақсаты. Қолданушының графикалық интерфейсінің элементтерінің жұмысымен танысу. Бірнеше файлдан құралған қосымша құру.

 

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

 

Бұл жұмыста ГИП компоненті, қолданушының графикалық компонентерімен жұмыс істеуі көрсетілген.

Графқұрушы программыны кұру үшін бізге төрт класс қажет,олар әртүрлі файлдарда орналасуы қажет.

Әрі қарай жұмыс істеу барысында шатасып кетпеу үшін,файлдарды бөлек бумаларға салып қоямыз. (болмаса Eclipse-те бөлек бумашықтар). Package explorer көрісінің проектысының атына тышқанның оң жақ батырмасын басып,жаңа бума құрамыз,ашылған мәзірде Folder”-ды таңдайсыз. Оны «MyGraph» деп атамыз. Кейін осы бумада төрт жаңа класс құрыңыз:

● «Graphic» — басты класс, main() әдісі орналасады.

● «Sinus» — синустың графикалық классы.

● «Cosinus» — косинустың графикалық классы.

● «X2» — параболаның графикалық классы.

Есте болсын,егер класстар public, protected және private модификаторларымен сипатталған болса,онда класстың мәліметтері сақталған класс аттары,файл аттарымен сәйкес келуі қажет.

Класстар құрылып болған соң,төменде корсетілген программаның кодын енгізіңіз.

Жұмыстың орындалу мысалдары: Қарапайым функциялардың графикалық құрылуы.

Graphic классы

packageMyGraph;

importjava.awt.*;

importjava.awt.event.*;

importjavax.swing.*;

publicclass Graphic extendsJFrame{

Graphic(String s){

super(s);

setLayout(null);

setSize(120,200);

setVisible(true);

this.setDefaultCloseOperation(EXIT_ON_CLOSE);

this.setResizable(false);

Button sin = newButton("Sin");

sin.setBounds(5, 20, 100, 25);

add(sin);

Button cos = newButton("Cos");

cos.setBounds(5, 70, 100, 25);

add(cos);

Button x2 = newButton("Парабола");

x2.setBounds(5, 120, 100, 25);

add(x2);

sin.addActionListener(new ActionListener(){

public voidactionPerformed(ActionEvent event){

newSinus("Синус");

}

});

cos.addActionListener(new ActionListener(){

public voidactionPerformed(ActionEvent event){

newCosinus("Косинус");

}

});

x2.addActionListener(new ActionListener(){

public voidactionPerformed(ActionEvent event){

newX2("Парабола");

}

});

}

public static voidmain(String[] args) {

newGraphic("Графопостроитель");

}

}

Класс Sinus

packageMyGraph;

importjava.awt.Color;

importjava.awt.Graphics;

importjavax.swing.JFrame;

public classSinus extendsJFrame{

Sinus(String s){

super(s);

setLayout(null);

setSize(600,300);

setVisible(true);

this.setDefaultCloseOperation(DISPOSE_ON_CLOSE);

this.setResizable(false);

this.setLocation(100, 100);

}

public voidpaint(Graphics gr){

inty; intj=0; intk=0;

gr.setColor(Color.WHITE);

gr.fillRect(0, 0, 600, 300);

gr.setColor(Color.lightGray);

while(j<600){

gr.drawLine(j, 0, j, 300);

j+=30;

}

while(k<300){

gr.drawLine(0, k, 600, k);

k+=30;

}

gr.setColor(Color.BLACK);

gr.drawLine(300, 0, 300, 300);

gr.drawLine(0, 150, 600, 150);

gr.drawLine(120, 140, 120, 160);

gr.drawLine(480, 140, 480, 160);

gr.drawString("0", 305, 165);

gr.drawString("-"+"\u03c0", 125, 140);

gr.drawString("\u03c0", 485, 140);

gr.setColor(Color.RED);

for(doublei=0;i<1000;i++){

y=(int)(80*Math.sin(Math.PI*i/180));

gr.drawLine((int)i-240, y+150, (int)i-240, y+150);

}

gr.dispose();

}

}

Класс Cosinus

packageMyGraph;

importjava.awt.Color;

importjava.awt.Graphics;

importjavax.swing.JFrame;

public classCosinus extendsJFrame{

Cosinus(String s){

super(s);

setLayout(null);

setSize(600,300);

setVisible(true);

this.setDefaultCloseOperation(DISPOSE_ON_CLOSE);

this.setResizable(false);

this.setLocation(200, 200);

}

public voidpaint(Graphics gr){

inty; intj=0; intk=0;

gr.setColor(Color.WHITE);

gr.fillRect(0, 0, 600, 300);

gr.setColor(Color.lightGray);

while(j<600){

gr.drawLine(j, 0, j, 300);

j+=30;

}

while(k<300){

gr.drawLine(0, k, 600, k);

k+=30;

}

gr.setColor(Color.BLACK);

gr.drawLine(300, 0, 300, 300);

gr.drawLine(0, 150, 600, 150);

gr.drawLine(120, 140, 120, 160);

gr.drawLine(480, 140, 480, 160);

gr.drawString("0", 305, 165);

gr.drawString("-"+"\u03c0", 125, 140);

gr.drawString("\u03c0", 485, 140);

gr.setColor(Color.RED);

for(double i=0;i<1000;i++){

y=(int)(80*Math.cos(Math.PI*i/180));

gr.drawLine((int)i-240, y+150, (int)i-240, y+150);

}

gr.dispose();

}

}

Graphics класында 120х200 өлшемді терезе сипатталған, онда үш баспа орналасқан. Оған ActionEvent өңдеу процедурасы деп аталатын арнайы қызмет көрсетіледі. Баспаны басқан кезде жаңа форма құрылады, ол элементарлы функция графигіне сәйкес құрылған.

Оқиғаларды өңдеу классатары addActionListener() қосу әдісінің параметрлерінде сипатталады. Осы әдістің параметрі бір actionPerformed() әдісі бар ActionListener жаңа объект интерфейсі болып табылады, ол осы оқиға шақырылған жағдайда бағдарламаға жауап береді.

Класстарда графиктердің құрылуы жүзеге асырылады, циклді қолдана отырып ашық сұр түсті коррдинатты тор, содан кейін қара түспен абсцисса мен ордината осьтері құрылады, (синус және косинус үшін) және (парабола үшін) аса қызықты, онда графтарды салу жүзеге асады. Синус және косинус аналогты түрде бастапқыда drawString() әдісімен және у мәнімен есептеледі, 1 пикселге тең түзу сызық сызылады. у координатасы int типіндегі double типінің түрлену жолымен есептеледі, нәтижесінде 80*Math.cos(Math.PI*i/180 шығады.

Парабола аналогты түрде екі сатыдан тұрады. Бірінші сатысында параболаның оң жағы, екінші сатысында теріс жағы құрылады.

 

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

1. Сызықты фукцияның графигін тұрғызу: для

2. Мына фукцияның графигін тұрғызу: ;

3. Мына фукцияның графигін тұрғызу:

4. Мына фукцияның графигін тұрғызу:

5. Мына фукцияның графигін тұрғызу:

6. Мына фукцияның графигін тұрғызу:

7. Мына фукцияның графигін тұрғызу:

8. Келесі функцияның анықталу облысын тауып, графигін тұрғызу:

9. Келесі функцияның анықталу облысын тауып, графигін тұрғызу:

10. Келесі функцияның анықталу облысын тауып, графигін тұрғызу:

11. Келесі функцияның анықталу облысын тауып, графигін тұрғызу:

12. Келесі функцияның анықталу облысын тауып, графигін тұрғызу:

13. Келесі функцияның анықталу облысын тауып, графигін тұрғызу:

14. Келесі функцияның анықталу облысын тауып, графигін тұрғызу:

15. Келесі функцияның анықталу облысын тауып, графигін тұрғызу:

16. Келесі функцияның анықталу облысын тауып, графигін тұрғызу:

17. Келесі функцияның анықталу облысын тауып, графигін тұрғызу:

18. Келесі функцияның анықталу облысын тауып, графигін тұрғызу:

19. Келесі функцияның анықталу облысын тауып, графигін тұрғызу:

20. Келесі функцияның анықталу облысын тауып, графигін тұрғызу:

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

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

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

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

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

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

1. Jav-программада графиканы инициализациялау қалай жүргізіледі?

2. Берілген нүктеден белгілі бір түспен белгіленген шекараға дейінгі қандайда бір аумақты берілген шаблон және түс бойынша бояуды қандай процедураның көмегімен іске асыруға болады?

3. Қандай функция арқылы экранның кеңейтпесін және адаптердің жұмыс режимінің атын білуге болады?

4. Графикалық экранның қабырғаларының қатынасының масштабтық коэффициенті қай процедураның көмегімен анықталады?

5. Шеңбердің доғасын сызу үшін қандай процедура қолданылады?

 

 

 

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

 



<== предыдущая лекция | следующая лекция ==>
МАССИВТЕР | АППЛЕТТЕР


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


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

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

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


 


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

 
 

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

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