Какой язык программирования изучать?
|
|
|
Дата: Понедельник, 02.07.2012, 13:25 | Сообщение #61
|
iyugov
Владыка слова
Группа: Друзья
Сообщений: 1433
Статус: Отсутствует
|
Quote (Kripex) в моем классе никто не интересуется программированием. Поэтому, мое мнение, что программирование в школе вообще не нужно изучать Может, просто не получилось заинтересовать? Quote (Kripex) Сам пишу на С++ около двух лет, это логичный и понятный язык Язык C++ во многих случаях предполагает неопределённое поведение программы, которое зависит от реализации компилятором. Сложный синтаксис, легко "выстрелить себе в ногу". C++ слишком техничен, так сказать. Убеждён, что нужно быть довольно способным школьником, чтобы освоить C++ без предварительного знакомства с каким-либо другим ЯП.
|
|
|
|
|
Дата: Пятница, 15.02.2013, 05:48 | Сообщение #62
|
Русаков
Прочно закрепившийся
Группа: Друзья
Сообщений: 762
Статус: Отсутствует
|
Олимпиадные задачи требуют ввод-вывод данных с использованием внешних файлов
как это сделать?
ИНФОРМАТИКА конспекты уроков 9-11 классы Чернов А.А. с198
program pr; uses crt; var f:file of integer; n:integer; a:string; begin clrscr; a:='c:\f1.txt'; assign(f,a); rewrite(f); writeln('n: '); readln(n); write(f,n); close (f); readln; end.
после выполнения программы в файле f1.txt вместо значения n=5 появилось -256
что не так ?
всеобщее общедоступное бесплатное дистанционное обучение на портале Прошколу.ру
|
|
|
|
|
Дата: Пятница, 15.02.2013, 09:30 | Сообщение #63
|
iyugov
Владыка слова
Группа: Друзья
Сообщений: 1433
Статус: Отсутствует
|
Цитата (Русаков) что не так ? 1. Модуль Crt нужен в основном для работы с экраном, а при файловом вводе-выводе только мешает. Соответственно, ClrScr теряет смысл. К тому же, при проверке у жюри модуля Crt может не оказаться вообще. Не используйте Crt. Вообще забудьте о нём в олимпиадных задачах.
2. Переменная F объявлена как двоичный файл (file of Integer), но в олимпиадных задачах используются только текстовые файлы (Text). Естественно, что при просмотре двоичного файла в текстовом редакторе видите другое значение.
3. После окончания работы программы задержки типа ReadLn делать не принято. Тестирующая система не ожидает, что программа участника затребует ввод ещё одной строки трактует это как слишком долгую работу решения. В результате даже правильно написанная программа не пройдёт по ограничениям времени работы.
4. Не используйте абсолютные пути. На сервере с тестирующей системой запросто может не оказаться диска C:.
5. В олимпиадных задачах не пишите никаких пояснений типа 'n: ', если это явно не требуется в условии задачи, иначе могут засчитать верные ответы за неверные. Комментарии в коде писать можно.
6. Для файлового ввода-вывода можно вообще не объявлять файловые переменные, а переназначать стандартные Input и Output. При этом не требуется указывать их в каждом Read и Write, да и закрывать их обычно не надо.
7. Если всё-таки хочется использовать Crt, ReadLn в конце, пояснения и т. п., то можно изловчиться с директивами препроцессора, которые позволяют компилировать разный код в зависимости от некоторого параметра - отладочная сборка или готовое к сдачи решение.
Пример: Код program Pr;
var A, B, C: Integer;
begin
{ Переназначение ввода-вывода } Assign(Input, 'input.txt'); Reset(Input); Assign(Output, 'output.txt'); Rewrite(Output);
{ Сложение двух чисел } Read(A, B); C := A + B; Write(C);
end. Файл input.txt должен существовать в том же каталоге, что и создаваемая программа.
Я своим школьникам, которые только начинают участвовать в олимпиадах, говорю: выучите эти 4 строки наизусть (Assign-Reset-Assign-Rewrite), пишите их в начале всех своих решений, и проблем не будет.
Сообщение отредактировал iyugov - Пятница, 15.02.2013, 09:38
|
|
|
|
|
Дата: Пятница, 15.02.2013, 19:25 | Сообщение #64
|
Крематорий
Зачастивший
Группа: Пользователи
Сообщений: 63
Статус: Отсутствует
|
Цитата (Русаков) ИНФОРМАТИКА конспекты уроков 9-11 классы Чернов А.А. с198
program pr; uses crt; var f:file of integer; n:integer; a:string; begin clrscr; a:='c:\f1.txt'; assign(f,a); rewrite(f); writeln('n: '); readln(n); write(f,n); close (f); readln; end. Девятый-одиннадцатый класс? Блин. Да я в своём седьмом знаю и паскаль, и бейсик, и си шарп, и си++.
Таки школяр. Мы, школяры, веселее, чем дрыхнущие по лавкам студенты. Лицей #179, Ленинград.
|
|
|
|
|
Дата: Суббота, 16.02.2013, 05:53 | Сообщение #65
|
Русаков
Прочно закрепившийся
Группа: Друзья
Сообщений: 762
Статус: Отсутствует
|
Прошу отредактировать ремарки в программе: program pr1; uses crt; var f:text; n:integer; a:string; begin clrscr; a:='c:\f1.txt'; {файл f1.txt находится на диске c:\} assign(f,a); {свяжем f1.txt с файлом f в Паскале} rewrite(f); {откроем файл f для записи} write('n: '); {приглашение ввести значение переменной n} readln(n); {ввод значения переменной n} writeln(f,n); {запись значения переменной n в файл f} close (f); {закрыть файл f} end.
Песни о Паскале oleg-derevenets.narod.ru
всеобщее общедоступное бесплатное дистанционное обучение на портале Прошколу.ру
Сообщение отредактировал Русаков - Суббота, 16.02.2013, 07:18
|
|
|
|
|
Дата: Суббота, 16.02.2013, 09:23 | Сообщение #66
|
iyugov
Владыка слова
Группа: Друзья
Сообщений: 1433
Статус: Отсутствует
|
Русаков, в принципе, всё верно - комментарии правильные, программа молжна работать. Правда, к олимпиадам она не имеет никакого отношения.
|
|
|
|
|
Дата: Пятница, 08.11.2013, 14:01 | Сообщение #67
|
kvtamber
Зачастивший
Группа: Проверенные
Сообщений: 90
Статус: Отсутствует
|
Вопрос о том, какой язык программирования изучать в школе, превратился в вопрос о месте программирования в школьном курсе информатики. А программирование это часть информатики или информатика - это только ИКТ? А как в странах откуда всегда ветер приносит волна за волной коренные изменения?
Причина редактирования: удаление повторяющегося текста.
kamber53
Сообщение отредактировал Ishina - Пятница, 08.11.2013, 19:14
|
|
|
|
|
Дата: Пятница, 08.11.2013, 17:32 | Сообщение #68
|
shiyan
Начинающий
Группа: Пользователи
Сообщений: 5
Статус: Отсутствует
|
В зависимости от возраста, могу предложить писать на C#/C++, Паскаль, составители районных и краевых олимпиад также любят предлагать программы на "полумертвом" VBS. Тоже очень интересный язык. Сам же сейчас пишу сайты и есть такая необходимость писать их на HTML, JS, JAVA, PHP.
Природа-не храм, а мастерская и человек в ней работник.
Сообщение отредактировал shiyan - Пятница, 08.11.2013, 17:41
|
|
|
|
|
Дата: Понедельник, 21.04.2014, 09:31 | Сообщение #69
|
Informatikum
Новичок
Группа: Пользователи
Сообщений: 21
Статус: Отсутствует
|
Цитата iyugov ( ) Язык C++ во многих случаях предполагает неопределённое поведение программы, которое зависит от реализации компилятором. Сложный синтаксис, легко "выстрелить себе в ногу". C++ слишком техничен, так сказать. Убеждён, что нужно быть довольно способным школьником, чтобы освоить C++ без предварительного знакомства с каким-либо другим ЯП.
Спасибо! От души посмеялся.
1. Неопределённое поведение программы - это как? Пишу программу не знаю какую, не знаю зачем, всё равно получу неопределённый результат? Программирование - это не магия. На Си, С++ вы работаете с памятью на прямую. Вы в любом случаи всегда будете получать определённый результат. Утрирую. Математика, сложный предмет, во многих случаях предполагает неопределённый результат, складывая 2+2 можно получить -5... Бензопила, сложный инструмент, легко отрезать себе ногу.
Изучение более сложных вещей, новых, предполгает наличие ранее полученного опыта и знаний. Если ученик не владеет компьютером, изучать Си будет архи сложно.
2. Если ученик способный, выбрал информатику, его можно знакомить с любым языком программирования. Выбор языка программирования зависит от целей преподавателя и ученика.
3. Учить можно любому языку. Лучше учить современный язык, чтобы ученик владел современными инструментами и став студентом уже мог подрабатывать и получать опыт. В идеале, чтобы учитель владел современным языком. Но, к сожалению, это очень большая редкость.
4. Я набрал группу учеников, которым интересна информатика, робототехника с 7 по 9 классы. Все изучают Си и Питон. Проблем в понимании и изучении нет.
5. На замену Пасклю приходит Питон (Пайтон - Python).
Написал несколько статей для учителей информатики и учеников.
Выбор языка программирования в школе. удалено модератором Стоит ли знакомить школьников с различными синтаксисами языков? удалено модератором Насколько глубоко нужно изучать программирование в школе? удалено модератором
Причина редактирования: нарушение Правил форума р.II п.3, р.III п.5
Информатикум - робототехника в школе
Сообщение отредактировал Ishina - Вторник, 22.04.2014, 17:56
|
|
|
|
|
Дата: Понедельник, 21.04.2014, 11:12 | Сообщение #70
|
iyugov
Владыка слова
Группа: Друзья
Сообщений: 1433
Статус: Отсутствует
|
Цитата Informatikum ( ) Неопределённое поведение программы - это как? Это не эпитет, а термин. Вот: Доступно только для пользователей Цитата Informatikum ( ) чтобы ученик владел современными инструментами и став студентом уже мог подрабатывать и получать опыт Это не является целью общего образования. Такой подход имеет смысл, если обучение идёт очень хорошо и можно взять дополнительные цели. Но разве для студентов, способных к программированию, актуальность школьных языков имеет значение? Ещё для моих сверстников эта разница не сказывалась. Цитата Informatikum ( ) Все изучают Си и Питон Я писал про C++. А Python - это очень хорошо.
Сообщение отредактировал iyugov - Понедельник, 21.04.2014, 11:22
|
|
|
|