 |
Вітаю Вас, Гість · RSS |
 |
Поговоримо про сучасні мови програмування.
| |
Ковшун |
Дата: Th, 04.10.2007, 15:23 | Повідомлення № 1 |
Досвідчений учасник
Повідомлень: 1462
| Шановні колеги!!! Існує багато мов програмування. Впродовж багатьох років у школах домінувала мова програмування Pascal. Проте, життя не стоїть на місці. З’явились нові, прогресивні мови програмування. Дана тема створена для обговорення проблем, пов’язаних з вивченням мов програмування в школі. Чи це буде Borland Delphi, чи С++, чи Visual Basic. Шановні форумчани!!!!! Повідомлення, які не відповідають темі або несуть некорисний зміст будуть видалятись без попередження!!!
Відредаговано: Ковшун - Th, 04.10.2007, 21:11 |
|
| |
zverok |
Дата: Mo, 11.02.2008, 16:28 | Повідомлення № 61 |
Креативний вчитель
Повідомлень: 153
| ОК, я Вашу точку зрения понял. Не хотите конструктива -- не будет конструктива. Преподавайте С++ "до указателей".
|
|
| |
Spirit |
Дата: Mo, 11.02.2008, 23:30 | Повідомлення № 62 |
Сис.адмін
Повідомлень: 408
| Господа! Как без конструктива! Наоборот, давайте больше конструкива! Я думаю, что каждый учитель должен сам выбирать какому языку лучше обучать. Так как именно учитель хорошо знает своих детей (их уровень обучаемости) и может реально оценить СВОИ возможности в учительстве. Главное научить детей правильно мыслить, а язык выучить не проблема, я знаю 9 языков программиования, надо будет выучу еще 
|
|
| |
zverok |
Дата: Mo, 11.02.2008, 23:58 | Повідомлення № 63 |
Креативний вчитель
Повідомлень: 153
| Quote (Spirit) Я думаю, что каждый учитель должен сам выбирать какому языку лучше обучать. Так как именно учитель хорошо знает своих детей (их уровень обучаемости) и может реально оценить СВОИ возможности в учительстве. Это справедливо. Но замечу, что дискуссия выглядела так: -- С++ не стоит, в нем сложные концепции. -- А как же олимпиады. -- Олимпиады -- не аргумент, чтобы изучать действительно сложный язык. -- Мне он нравится. А изучить его несложно, если оставить в стороне фундаментальные концепции. (приношу извинения, если неверно изложил т.з. оппонента) В этом контексте мне остается только развести руками (Хотел было поинтересоваться, как dpi показывает строки, или массивы, без указателей -- но на фразе "Вы идите в школу поработайте хотябы лет пять" -- понял что это бессмысленно.)
|
|
| |
Spirit |
Дата: Th, 14.02.2008, 00:00 | Повідомлення № 64 |
Сис.адмін
Повідомлень: 408
| Мне сложно оценить ход дискуссии, думаю это лучше получиться у господина dpi. С++ не такой уж сложный. Может мне так кажеться, но я его учил в 9 классе в Малой академии Строки и массивы я могу прекрассно рассказать без указателей! Легко Но детям нужно рассказывать что такое указатель, так как это нужно понимать и лучше понять это в школе, чем в ВУЗе, где всем безразлично понял ты или нет.
|
|
| |
zverok |
Дата: Th, 14.02.2008, 11:09 | Повідомлення № 65 |
Креативний вчитель
Повідомлень: 153
| Quote (Spirit) Строки и массивы я могу прекрассно рассказать без указателей! Любопытно. А можно пример, тезисно? Quote (Spirit) Но детям нужно рассказывать что такое указатель, так как это нужно понимать и лучше понять это в школе Я не совсем уверен, что каждый школьник должен четко понимать, что такое "указатель". Это достаточно абстрактная концепция. В то же время, мой опыт (не школьно-учительский, который, увы, невелик, на что мне и пеняют -- но обучения в программистском вузе, участия в исследованиях и дискуссиях по теме и т.п.) показывает, что эта концепция действительно сложна для понимания (если не ошибаюсь, есть статистика по знаменитому IT-вузу MIT, там на первом курсе отсеивается более 50% студентов, прослушивающих курсы по низкоуровневому программированию, именно на понимании указателей).
|
|
| |
Spirit |
Дата: Th, 14.02.2008, 13:56 | Повідомлення № 66 |
Сис.адмін
Повідомлень: 408
| Да, со строкой в чистом С++ не получиться, я просто пишу в Билдере и поэтому привык что там есть класс AnsiString. А с массивами, mas[1][1] = 25; и никаких указателей! И объявлять его можно статическим, т.е. с неизменяемым кол-вом строк и столбцов.
|
|
| |
Sasyk |
Дата: Th, 14.02.2008, 17:25 | Повідомлення № 67 |
знаток тестуючих систем
Повідомлень: 300
| Quote (dpi) Простота обучения зависит от того кто обучает. Отсюда простой вывод. Не завжди... думаю тут зі мною всі погодяться... Звичайно, якщо вчитель !!!, то й результат буде !!!
|
|
| |
Spirit |
Дата: Th, 14.02.2008, 21:02 | Повідомлення № 68 |
Сис.адмін
Повідомлень: 408
| Quote (Sasyk) думаю тут зі мною всі погодяться... Звичайно, якщо вчитель !!!, то й результат буде !!! Однозначно!  Добавлено (14.02.2008, 21:02) --------------------------------------------- И, думаю, на курсах повышения квалификации должны рассказывать про новые технологии, а не так как обычно... ерунду какую-то нести... Может у кого-то по другому, но у нас, насколько я знаю так.
|
|
| |
dpi |
Дата: Fr, 15.02.2008, 13:17 | Повідомлення № 69 |
Досвідчений вчитель
Повідомлень: 1438
| Работа со строками (Dev-C++, Bilder 6): #include <fstream> #include <iostream> #define n 100 using namespace std; int main () { fstream fin; fin.open("ssss.dat", ios::in); if (!fin) { cout<<"No file !!!\n"; system("PAUSE"); return -1; } int a; string s("Helo forum!!!"); s="eto toge stroka"; //Смешанный вод чисел и строк из файла ssss.dat //Просто fin>>s1 не читает из за пробела char s1[n]; fin>>a; fin.get(); //убираем пробел или Enter cout<<a<<"\n"; fin.getline(s1,n); fin.close(); cout<<s1<<"\n"; cout<<"\n"; system("PAUSE"); } + всевозможные операции работы со строками Не забудьте о размере строки (100) и "ssss.dat" в виде: ------------------ 45 eto strochka ------------------ Хотите больше, есть дополнительные библилтеки О массиве писать не хочется, скучновато...
|
|
| |
zverok |
Дата: Fr, 15.02.2008, 14:40 | Повідомлення № 70 |
Креативний вчитель
Повідомлень: 153
| Угу. А потом прекрасное дитя делает Code string s = "mama" + "papa"; И учитель имеет бледный вид. Я не спорю, string и vector из стандартной библиотеки могут помочь "скрыть сложность". Но, увы, не понимая фундаментальных вещей (указателей и ссылок), дальше чем "ввести строку с экрана, вывести строку на экран" не уедешь. Заметьте, что и в Вашем демонстрационном примере понадобился иероглиф "char s1[n]", про который придется объяснять, что это такое, и почему именно такое. А касаясь массивов, про которые "скучновато", я вот не знаю, что хуже для объяснения: это: int *massiv = new int[n]; ? или это: vector<int> massiv(n); ? или "массивы можно делать только заранее известного размера"? (Не касаясь даже двумерных массивов, которые при хоть сколь-нибудь сложных алгоритмических задачах неплохо бы затронуть).
|
|
| |
badm |
Дата: Fr, 15.02.2008, 15:30 | Повідомлення № 71 |
Знаток програмування
Повідомлень: 185
| Не думаю що на таких прикладах вказівники пояснювати недоречно. Можна взагалі на С++ писати взагалі з логічної точки зору неприпустимі речі (при необхідності), але питання стоїть в тому, що мову можна використовувати не поглиблюючись у її закаулки і недоресності і все чудово буде працювати. До речі С++ має якщо не помиляюсь 5 моделей для програмування і кожен може вибрати згідно своїх можливостей. На рахунок двовимірних масивів їх природа логічна це набір одновимірних.
Відредаговано: badm - Fr, 15.02.2008, 15:30 |
|
| |
zverok |
Дата: Fr, 15.02.2008, 16:30 | Повідомлення № 72 |
Креативний вчитель
Повідомлень: 153
| Quote (badm) ...мову можна використовувати не поглиблюючись у її закаулки і недоресності і все чудово буде працювати. Изначально шла речь о том, что на указателях держится вообще почти все в С++, их МОЖНО не использовать, но без базового понимания концепции языком пользоваться тяжело (т.е. это НЕ "мелкий недостаток языка"). Еще раз уточню -- С++ я очень люблю, написал на нем сотни тысяч строк. Т.е. я не о том, что это "плохой язык", а лишь о том, что это "не лучший выбор учебного языка". Жестокий он. Quote (badm) На рахунок двовимірних масивів їх природа логічна це набір одновимірних. Ну, во-первых непрограммисту это не вполне очевидно :) /кстати, существуют языки, где двумерный массив -- отдельная сущность, а не массив массивов. Вообще говоря, к ним относится даже всеми любимый Паскаль/ Во-вторых, я о том, что Code vector<int> test(10); еще легко объяснить как "массив целых размером 10", а вот двумерный массив 10х10 уже потребует многословного Code vector<vector<int> > test(10); for(...){test[i].resize(10)} В общем, "все от руки" :) Я бы все же для обучения предпочел язык, где можно сделать это лаконичнее. (Альтернативный вариант -- специальный подбор "библиотек для школьников", в принципе класс двумерного массива не бог весть что, а показывать vector2<int> test(10, 10) -- куда нагляднее. Но от исходной темы -- необходимости хоть поверхностного объяснения указателей -- далеко все равно не уйти, увы.)
|
|
| |
dpi |
Дата: Sa, 16.02.2008, 09:30 | Повідомлення № 73 |
Досвідчений вчитель
Повідомлень: 1438
| Quote (zverok) или "массивы можно делать только заранее известного размера"? В школьном курсе и для олимпиадного факультатива - да. Quote (zverok) string s = "mama" + "papa"; И учитель имеет бледный вид. string s3; string s2(" tak i "); s3="Ne"+s2+"ploho";
|
|
| |
badm |
Дата: Mo, 18.02.2008, 11:53 | Повідомлення № 74 |
Знаток програмування
Повідомлень: 185
| Вся бібілотека Stl та і основні концепції С++ базуються на посиланнях string, vector i тд. працюють динамічними змінними, але це сховано у бібліотечних файлах, де використовуються шаблони. З двовимірними масивами через vector було самому цікаво пробував vector<vector<int> > test(10); test(10) можна і test(10,10), але від цього задання масиву не зміниться vector<vector<int> > test; а далі як обробляти? for(...){test[i].resize(10)} але так і не дійшов кінця, а от vector<int > test[10]; Тільки обмеження по стрічках до 10 або організувати структуру, клас з 2 vector, також можна через посилання. Для паскаля більш логічно a:array[1..10]of array[1..10] of integer; 10x10 двухмерный масив. Приклад для введення 10Х10. #include <iostream> #include <vector> using namespace std; int main(){ vector<int>s[10]; for(int i=0;i < 10;i++) for(int j=0;j < 10;j++) s[i].push_back(j); for(int i=0;i < 10;i++) { for(int j=0;j < 10;j++) cout<<s[i][j]<<" "; cout<<endl;} }
Відредаговано: badm - Mo, 18.02.2008, 11:58 |
|
| |
Varkan |
Дата: Mo, 18.02.2008, 13:13 | Повідомлення № 75 |
Викладач ВУЗу
Повідомлень: 425
| судячи по всьому з с, с++, бейсиком та паскалем розібралися. невже на цьому всі сучасні мови і закінчилися? давайте поговоримо про таку чудову мову як пролог, яка дозволяє створювати експертні системи та штучний інтелект. взагалі хтось із вас програмував коли небуть на пролозі?
|
|
| |
© Форум інформатиків України, 2007-2022.  |