 |
Вітаю Вас, Гість · RSS |
 |
| "Мова програмування С++. Спецкурс. 10-12 клас ", Лехан С.А. |
| Ковшун |
Дата: Чт, 17.07.2008, 09:40 | Повідомлення № 1 |
|
Адмін
Група: Адміністратори
Повідомлень: 1468
| Шановні колеги!!! Висловлюємо свої думки стосовно посібника "Мова програмування С++. Спецкурс. 10-12 клас ", Лехан С.А., "Аспект" -------------------------------------------------------- Шановні форумчани!!!!! Повідомлення, які не відповідають темі або несуть некорисний зміст будуть видалятись без попередження!!!
Відредаговано: Ковшун - Чт, 17.07.2008, 11:03 |
|
| | |
| Шестопалов |
Дата: Чт, 17.07.2008, 15:08 | Повідомлення № 2 |
|
Видавець посібників
Група: Друзі форуму
Повідомлень: 788
| Шановні колеги! Якщо ви користуєтесь цією книгою у навчальному процесі, напишіть в цій темі, що в ній "поганого" і як на вашу думку можна зробити її кращою для себе та інших. Я буду уважно відпрацьовувати ваші зауваження та пропозиції у нових виданнях навчального посібника. З повагою! Євген Шестопалов, "Аспект"
|
|
| | |
| dpi |
Дата: Сб, 04.04.2009, 09:29 | Повідомлення № 3 |
|
Досвідчений вчитель
Група: VIP-користувачі
Повідомлень: 1418
| Можно посмотреть содержание и любой текст программы на С++ с этой книги.
|
|
| | |
| Шестопалов |
Дата: Сб, 04.04.2009, 10:14 | Повідомлення № 4 |
|
Видавець посібників
Група: Друзі форуму
Повідомлень: 788
| Quote (dpi) Можно посмотреть содержание и любой текст программы на С++ с этой книги. «Інформатика. Мова програмування С++. Спецкурс. 10-12 класи», Лєхан С.А., 2007, - 160 с., 10 грн. Заказать на сайте http://aspekt-edu.kiev.ua Зміст 1. Лінійні алгоритми 1.1. Вступ до мови програмування С++. 1.2. Типи даних. Змінні в С++. Присвоєння значень змінним. 1.3. Практична робота №1 «Робота в середовищі програмування Воrland С++». 1.4. Виконання простих операцій. Математичні операції мови С++. Уведення даних. 1.5. Практична робота №2 «Уведення та виведення даних». 1.6 Математичні функції в С++. Запис математичних виразів мовою C++. 1.7. Практична робота № 3 «Створення лінійних програм». 1.8. Тематичне оцінювання з теми «Програма. Мова програмування». 2. Алгоритми з розгалуженням 2.1. Оператор розгалуження if. 2.2. Практична робота № 4 «Програми з оператором розгалуження». 2.3. Логічні операції «І», «АБО», «НЕ». Оператор-перемикач. 2.4. Обробка декількох умов. 2.5. Практична робота № 5 «Використання логічних операцій та оператора-перемикача». 3. Оператори для організації циклів. 3.1. Цикли. Цикл із лічильником . 3.2. Практична робота № 6 «Програми з циклом із лічильником». 3.3. Цикл while. 3.4. Практична робота № 7 «Програми з повтореннями». 3.5. Тематичне оцінювання з теми «Оператори повторення та розгалуження». 4. Функції 4.1. Функції у С++. Локальні і глобальні змінні. 4.2. Виведення українських літер. Прототипи функцій. Випадкові числа. 4.3. Вказівники. Адреси змінних. 4.4. Практична робота № 8 «Складання програм з використанням функцій». 4.5. Тематичне оцінювання з теми «Функції». 5. Масиви 5.1. Поняття масиву. Опис та ініціалізація масиву. 5.2. Складання програм із масивами. 5.3. Практична робота № 9 «Розробка програм із масивами». 5.4. Алгоритми сортування. 5.5. Практична робота № 10 «Впорядкування масивів». 5.6. Вказівники, динамічні змінні й масиви. 5.7. Багатовимірні масиви. 5.8. Тематичне оцінювання з теми «Масиви». 6. Рядкові величини. 6.1. Символьні рядки . 6.2. Вказівники і символьні рядки. 6.3. Практична робота №11 «Опрацювання рядкових величин». 6.4. Тематичне оцінювання з теми «Рядкові величини». 7. Файлові операції. 7.1. Виведення та читання файлів. 7.2. Приклад використання файлових операцій. 8. Зберігання зв'язаної інформації в структурах. 8.1. Структури. Структури й функції. 8.2. Практична робота №12 «Файлові операції. Структури» . 9. Створення графічних зображень. 9.1. Основи об’єктно-орієнтованого програмування. 9.2. Графіка у середовищі Borland C++ Builder. 9.3. Практична робота № 13 «Малювання примітивів». 9.4. Виведення тексту. Малювання крапками. 9.5. Практична робота № 14 «Малювання графіків функцій». 9.6. Тематична атестація «Побудова графічних зображень».
Відредаговано: Шестопалов - Сб, 04.04.2009, 10:16 |
|
| | |
| mouse |
Дата: Сб, 04.04.2009, 10:58 | Повідомлення № 5 |
|
Досвідчений учасник
Група: Друзі форуму
Повідомлень: 1788
| Маю книгу дома. Читав. Порад, пропозицій може бути багато. Але в такій формі (писати сторінку, що не так чи так)? Я думаю, що краще робити на тексті оригіналу в Word, наприклад. І це лише буде моя думка. В загальному книга - гарна. Саме головне, що С++, на мою думку, треба вивчати замість Паскаля. Знову, на мою думку, С++ набагато гнучкіший. Є логічне продовження в візуальному відображенню: Visual C++, Visual C#. Тим більше синтаксис С++ використовується далі: Java Script, PHP...
|
|
| | |
| swetikccc |
Дата: Сб, 04.04.2009, 11:35 | Повідомлення № 6 |
|
Ветеран спілкування
Група: VIP-користувачі
Повідомлень: 1752
| Придбав книгу, хотів переходити на С++, приїхав син, полистав і зробив вивід що це Си, але буду переходити.
|
|
| | |
| dpi |
Дата: Сб, 04.04.2009, 15:03 | Повідомлення № 7 |
|
Досвідчений вчитель
Група: VIP-користувачі
Повідомлень: 1418
| Quote (swetikccc) Придбав книгу, хотів переходити на С++, приїхав син, полистав і зробив вивід що це Си, але буду переходити. Спасибо, я как раз хотел узнать С или С++.
|
|
| | |
| swetikccc |
Дата: Сб, 04.04.2009, 18:17 | Повідомлення № 8 |
|
Ветеран спілкування
Група: VIP-користувачі
Повідомлень: 1752
| Quote (dpi) Спасибо, я как раз хотел узнать С или С++. Но книга нормальная для школы сойдёт
|
|
| | |
| badm |
Дата: Сб, 04.04.2009, 20:13 | Повідомлення № 9 |
|
Знаток програмування
Група: VIP-користувачі
Повідомлень: 185
| На скільки розумію то вариант С++ близьки до С. Рядки без STL. Напевне на базі BC++ 5.0. Виправте якщо помиляюсь. Мені ближче синтаксис вже С++ і в реалізації на g++. В інеті маса матеріалу є уроки як власні та і інших авторів, якщо потрібно можу поділитися. Хотілося б запитати а хіба не можна читати С++ у звичайній програмі (там ж немає наголошення конкретного на мову програмування)
|
|
| | |
| sergey |
Дата: Сб, 04.04.2009, 20:56 | Повідомлення № 10 |
|
Знаток мови С
Група: VIP-користувачі
Повідомлень: 28
| Дякую за відгуки! Підручник писався під 40 годинну програму МОНу. Тому деякі дуже важливі теми С++ не "влізли". Але планую ввести поняття класів, та ще деякі теми, якщо буде перевидання. Звісно, у 1-му виданні не обійшлося без помилок та описок, але вони знайдені і будуть виправлені. З повагою, Сергій
Додано (04.04.2009, 21:47) --------------------------------------------- Користуюсь безкоштовною devcpp-4.9.9.2, якщо треба пошукаю сайт де можна скачати її. Інтерфейс є український, російський, англ. та інші. Дуже зручно в ній працювати - створюються вихідны файли всіх введених учнем програм в одному вікні. Можна копіювати фрагменти і переносити у сусідній файл використовуючи вордівскі правила. Вчитель може швидко перевірити всі виконані учнем завдання. Використовуючи NSS10 - можна не вставаючи з міста контролювати весь клас і допомагати тим кому потрібно, виправляти помилки. На сайті технічного редактора книги Олександра Пилипчука є опис devcpp. Теми з графики - потребують C++Builder6 наприклад. Додано (04.04.2009, 21:56) --------------------------------------------- Якщо цікаво - поміщу деякі програмки, наприклад з теми функції: Приклад 1. Написати функцію, що отримує один параметр – натуральне число, міняє порядок цифр у цьому числі на протилежний і повертає отриманий результат. #include<iostream.h> //Програма 4.1 #include<conio.h> int Mir(int a) //Функція { int res=0; while(a>0) { res=res*10+a%10; a/=10; } return res; } //Головна програма int main() { int Num; do { cout<<"Vvedi naturalne chislo:"; cin>>Num; } while (Num < 0); int res = Mir(Num); //Виклик функції cout<<"Dzerkalo = "<<res; getch();return 0; }
|
|
| | |
| dpi |
Дата: Сб, 04.04.2009, 20:58 | Повідомлення № 11 |
|
Досвідчений вчитель
Група: VIP-користувачі
Повідомлень: 1418
| Графика не нужна на олимпиадах, ее можно забыть. Quote (badm) Мені ближче синтаксис вже С++ і в реалізації на g++. Именно то, что надо. Совместно с MinGW Developer Studio. Quote (badm) Хотілося б запитати а хіба не можна читати С++ у звичайній програмі (там ж немає наголошення конкретного на мову програмування) Можно и нужно. Не обязательно, конечно, но желательно не мешать С и С++: #include<iostream> using namespace std; int Mir(int); int main() { int Num; do { cout<<"Vvedi naturalne chislo:"; cin>>Num; } while (Num < 0); int res = Mir(Num); cout<<"Dzerkalo = "<<res; return 0; } int Mir(int a) { int res=0; while(a>0) { res=res*10+a%10; a/=10; } return res; }
Відредаговано: dpi - Сб, 04.04.2009, 21:06 |
|
| | |
| sergey |
Дата: Сб, 04.04.2009, 21:16 | Повідомлення № 12 |
|
Знаток мови С
Група: VIP-користувачі
Повідомлень: 28
| Змінна-вказівник містить адресу пам'яті відповідної змінної. Всередині функції потрібно зазначити C++, що функція працює з адресою параметра: *а=1001; *b=1001; Функція має доступ до комірки пам'яті кожної із змінних. Якщо параметри передаються за адресою, C++ поміщає адресу кожної змінної в стек (дивись малюнок «Схема передавання параметрів за адресою»). Використовуючи вказівники (адреси пам'яті) всередині функції, fun може звернутися до пам'яті за адресою кожного параметра, змінюючи значення параметрів, що й потрібно: #include<iostream.h> //Програма 4.10 #include<conio.h> void fun(int*, int*); //Прототип функції int main() { int big=2002, small=0; cout<<"Do funkcii:"<<big<<" "<<small<<endl; fun(&big,&small);//Передача параметра за адресою cout<<"Pislya funkcii:"<<big<<" "<<small<<endl; getch();return 0; } void fun(int *a,int *b) { *a=1001;*b=1001; cout<<"U funkcii:"<<"a="<<a<<" "<<"b="<<b<<endl; cout<<"U funkcii:"<<"*a="<<*a<<" "<<"*b="<<*b<<endl; }Додано (04.04.2009, 22:05) --------------------------------------------- Пошук елементів із заданою властивістю Задача 2. Підрахувати і надрукувати кількість від’ємних елементів у масиві з 10 цілих чисел х. #include<iostream.h> //Програма 5.5 #include<conio.h> int main() { const int n = 10; // Розмірність масиву int x[n]; // Оголошення масиву for(int i = 0; i < n; i++) { cout<<i<<" element:\t"; cin>>x[i]; //Уведення елементів масиву } // Підрахунок від’ємних int col = 0; for(int i = 0; i < n; i++) if(x[i] < 0) // Перевірка col++; // Лічильник cout<<endl; for(int i = 0; i < n; i++) cout<<x[i]<<"\t"; //Друк елементів масиву cout<<"\nvidjemnih elementiv:\t"<<col<<endl; getch();return 0; } Додано (04.04.2009, 22:07) --------------------------------------------- метод «бульбашки»: більші елементи, як бульбашки у воді, «спливають» на відповідні позиції. #include<iostream.h> //Програма 5.8 #include<conio.h> int main() { const int n = 8; int i; int a[n] = {9, 13, 8, 0, 5, 14, 10, 6}; cout <<"\nVivedennja masivu: \n"; for ( i = 0; i < n; i++) cout << a[i] << '\t'; int Temp, j = 1; bool prapor = false; do { prapor = false; for(i = 0; i <n-j; i++) if (a[i] > a[i+1]) { Temp = a[i]; a[i] = a[i+1]; a[i+1] = Temp; prapor = true; } j++; } while (prapor); cout << "\nPislja sortuvannja:\n"; for (i = 0; i < n; i++) cout << a[i] << '\t'; getch(); return 0; } Додано (04.04.2009, 22:08) --------------------------------------------- Приклад. З клавіатури вводиться ціле число n, а потім ще n цілих чисел. Розмістити уведені n чисел у динамічному масиві, після чого вивести їх на екран, відокремивши пропусками. #include<iostream.h> //Програма 5.9.1 #include<conio.h> int main() { int n,*a; //Опис змінної розмірності, та масиву cout<<"Rozmirnist' masivu: "; cin>>n; // Кількість елементів масиву a=new int[n]; // Виділення пам'яті для // масиву з n елементів // Уведення елементів масиву for(int i = 0; i < n; i++) { cout<<i<<" Element="; cin>>a[i]; } // Виведення масиву на екран cout<<"\nMasiv:\n"; for(int i = 0; i < n; i++) cout<<a[i]<<" "; cout<<endl; delete[]a; //Вивільнення пам'яті getch(); return 0; } Додано (04.04.2009, 22:10) --------------------------------------------- Вправа 5-6. 1) Випробуйте програму, яка реалізує такі функції для роботи з масивами: а) функція уведення елементів масиву; б) функція виведення масиву; в) функція сортування масиву. Уважно дослідіть роботу програми. #include<iostream.h> //Програма 5.9 #include<conio.h> //Прототипи void _Input(int*,int); //функції уведення void _Sort(int*,int); //функції сортування void _Print(int*,int); //функції виведення int main() { int n,*a; cout<<"Vvedi rozmir masivu:\t"; cin>>n; //Кількість елементів масиву a=new int[n]; //Виділення пам'яті для //масиву з n елементів _Input(a,n); //Уведення елементів масиву cout<<"\nMasiv:\n"; _Print(a,n); //Виведення масиву на екран _Sort(a,n); //Сортування масиву cout<<"Vidsortovanij masiv:\n"; _Print(a,n); //Виведення відсортованого масиву delete[]a; //Вивільнення пам'яті getch();return 0; } //ФУНКЦІЇ void _Input(int *a, int n) //Уведення { for(int i = 0; i < n; i++) { cout<<"Element "<< i + 1 <<"\t"; cin>>a[i]; //Уведення елементів масиву } } void _Print(int *a, int n) //Виведення { for(int i = 0; i < n; i++) cout<<a[i]<<" "; cout<<endl; //Виведення елементів масиву } void _Sort(int *a, int n) //Сортування { int temp; //Тимчасова змінна для обміну значень bool flag = true; //Прапорець закінчення for(int j = 1; ; j++) //сортування { for(int i = 0; i < n - j; i++) if(a[i] > a[i+1]) { temp = a[i]; a[i] = a[i+1]; a[i+1] = temp; flag = false; } if(flag == true) break; flag = true; } } Додано (04.04.2009, 22:11) --------------------------------------------- Приклад 1. Написати програму, в якій для двовимірного масиву цілих чисел визначається номер крайнього стовпця, розташованого ліворуч, що містить тільки додатні елементи. Якщо такого стовпця немає, виводиться відповідне повідомлення. #include<iostream.h> //Програма 5.10 #include<iomanip.h> #include<conio.h> int main() { int ryad, stovp; // уведення розмірності масиву cout<<"Vvedi kilkist’ ryadkiv:";cin >> ryad; cout<<"Vvedi kilkist’ stovpciv:";cin>>stovp; // виділення пам’ятi під масив int i, j; int **a = new int *[ryad]; for( i = 0; i < ryad; i++) a[i] = new int [stovp]; // уведення масиву cout << "Uvedit elementu masivu:" << endl; for (i = 0; i < ryad; i++) for (j = 0; j < stovp; j++) cin >> a[i][j]; // виведення масиву for (i = 0; i < ryad; i++) { for (j = 0; j < stovp; j++) cout << setw(4) << a[i][j] <<" "; cout << endl; } //аналіз масиву int n = -1; bool dodat; for (j = 0; j < stovp; j++) { //перегляд по стовпцях dodat = true; //аналіз елементів стовпця for (i = 0; i < ryad; i++) if (a[i][j] < 0) { dodat = false;break; } if (dodat) { n = j;break; } } if (n ==-1 ) cout << " Stovpciv nema" <<endl; else cout<<"Nomer stovpcya: "<<n<<endl; getch();return 0; } Додано (04.04.2009, 22:13) --------------------------------------------- У наступній програмі уводиться рядок з використанням циклу for, а потім виводиться на екран за допомогою cout: #include<iostream.h> //Програма 6.1 #include<conio.h> int main() { char abc [27]; // 26 символів плюс NULL char let; int i; //Заповнення рядкового масиву латинськими літерами for (let = 'A', i = 0; let <= 'Z'; let++, i++) abc [i] = let; abc [i] = '\0'; //Ознака кінця рядка cout << abc; //Виведення рядкової константи getch(); return 0; } Додано (04.04.2009, 22:16) --------------------------------------------- 7.2. Приклад використання файлових операцій Спробуємо переробити задачу (п. 5.10, приклад 1) для уведен-ня вхідних даних з файлу (погодьтеся, що уведення при налагодженні програми двовимірних масивів чисел з клавіатури – доволі кропітка робота). Тоді, використавши текстовий редактор «Блокнот», ми зможемо швидко підготувати декілька різних наборів даних для тестування програми. #include <iostream.h> //Програма 7.7 #include <fstream.h> #include <iomanip.h> #include <conio.h> int main() { ifstream fin("c:\\pr\\input.txt"); if (!fin) { cout<<"Fajl input.txt ne znajdeno"<<endl; getch();return 1; } ofstream fout("c:\\pr\\output.txt"); if (!fout) { cout<<"Nemoglivo vidkryty dlya zapisu"<<endl; getch();return 1; } int ryad, stovp; fin>>ryad; //зчитування кількості рядків fin>>stovp; //зчитування кількості стовпців // виділення пам’ятi під масив int i, j; int **a = new int *[ryad]; for( i = 0; i < ryad; i++) a[i] = new int [stovp]; // уведення масиву for (i = 0; i < ryad; i++) for (j = 0; j < stovp; j++) fin >> a[i][j]; // виведення масиву for (i = 0; i < ryad; i++) { for (j = 0; j < stovp; j++) fout<<setw(4)<<a[i][j]<<" "; fout<<endl; } //аналіз масиву int n = -1; bool dodat; for (j = 0; j < stovp; j++) { //перегляд по стовпцях dodat = true; //аналіз елементів стовпця for (i = 0; i < ryad; i++) if (a[i][j] < 0) { dodat = false;break; } if (dodat) { n = j;break; } } if (n ==-1 ) fout<<"Stovpciv nema"<<endl; else fout<<"Nomer stovpcya: "<<n<<endl; cout<<"Shlyah do fajlu rezultatu: c:\\pr"; getch(); return 0; } Уведення розмірності масиву і його елементів виконується з файлу input.txt, розташованого в папці с:\pr, а результати виводяться у файл output.txt. У програмі визначений об'єкт fin класу вхідних файлових потоків й об'єкт fout класу вихідних файлових потоків. Після визначення об'єктів перевіряється успішність їхнього створення. Це особливо важливо робити для вхідних файлів, щоб уникнути помилки в імені або місці розташування файлу. Якщо програма завершується успішно, то на екран виводиться повідомлення «Shlyah do fajlu rezultatu: c:\\pr». Завдяки цьому користувач вашої програми зрозуміє, де шукати результати роботи програми. Вхідний файл input.txt можна створити в будь-якому текстово-му редакторі. Він, природно, повинен існувати на момент першого запуску програми. На розташування й формат вихідних даних у файлі ніяких обмежень не накладається. Для перевірки роботи програми підготуємо файл input.txt, наприклад: 3 4 -4 -5 3 9 5 0 3 8 8 1 7 3 Тут перші два числа вказують на те, що масив складається з 3 х рядків та 4-х стовпців, а далі розміщений сам масив чисел.
|
|
| | |
| swetikccc |
Дата: Нд, 05.04.2009, 12:08 | Повідомлення № 13 |
|
Ветеран спілкування
Група: VIP-користувачі
Повідомлень: 1752
| Quote (sergey) Користуюсь безкоштовною devcpp-4.9.9.2, якщо треба пошукаю сайт де можна скачати її. Інтерфейс є український, російський, англ. та інші. Є безкоштовна Microsoft Visual Studio 2008 Express Edition російська з російським MSDN, от би книгу під неї підладнати , а то Практична робота №1 «Робота в середовищі програмування Воrland С++» Небезкоштовне і свое віджива
|
|
| | |
| mouse |
Дата: Вт, 29.09.2009, 15:41 | Повідомлення № 14 |
|
Досвідчений учасник
Група: Друзі форуму
Повідомлень: 1788
| Quote (swetikccc) Є безкоштовна Microsoft Visual Studio 2008 Express Edition російська з російським MSDN Погоджуюсь повністю. Треба використовувати сучасне ПЗ, тим більше, якщо компанія пропоную потужне середовище безкоштовно! З такимм самим успіхом можно "штовхати" в маси С# в тому ж середовищі. Можливо, варто було розділити в книзі першочергові завдання ОСНОВА і більш складні другорядні, мовби завдання з півзірочкою. Я маю на увазі не тільки завдання, а й весь курс. Щоб діти бачили - де основа, а де розвиток.
|
|
| | |
| dpi |
Дата: Вт, 29.09.2009, 16:41 | Повідомлення № 15 |
|
Досвідчений вчитель
Група: VIP-користувачі
Повідомлень: 1418
| Quote (mouse) З такимм самим успіхом можно "штовхати" в маси С# в тому ж середовищі. Не сильно верю в перспективу С# в школах, хотя и не считаю себя консерватором.
|
|
| |
© Форум інформатиків України, 2007-2012. Хостинг від uCoz
|