Объявление

Односложные и бессмысленные темы, не несущие полезную нагрузку или не содержащие в себе вопрос, будут удаляться!

#1 26-10-09 21:51:37

MOP3E
Участник
Здесь с 05-10-09
Сообщений: 4,208

Re: Языки программирования в обучении

msAVA пишет:

Давайте отделим мух от котлет.

О чём я здесь и пишу. Есть дисциплины информатики и алгоритмизации. Есть дисциплины алгоритмических языков. И это две разные вещи. Не нужно мешать их вместе.

msAVA пишет:

переменные есть только двух типов, вещественный скаляр (числа с плавающей запятой) и вектор таких скаляров.

Не мало? Всё-таки классический набор из числового и текстового типа - понятнее и удобнее.


Я не игрушечный. Я, б*я, коллекционный! (с) Duke Nukem Forever
Я не специалист по [вставить название]. Мне главное концептуально решить задачу! (с) АхаRu.
Линукс - это альтернативная ОС о которой известно, что она не является ОС ну вот просто ни разу. (с) Linups_Troolvalds.
А с какого такого перепугу пользователей линукса должно быть больше 1%? (с) petrun

Вне форума

#2 26-10-09 22:19:10

Armanx64
Забанен
Откуда: -за леса, из-за гор
Здесь с 05-10-09
Сообщений: 1,434
Сайт

Языки программирования в обучении

Сравнение двух программ - одна в PascalABC.NET, другая на C#. Задача: a+b=c, а и b вводятся с клавы.
PascalABC.NET:

program damn;
uses crt;  //Для PascalABC.NET не нужно подгружать модуль crt, он встроен. Я его привёл лишь для вида Pascal вообще
var:a,b,c:uint64; //PascalABC.NET  может использовать единые типы .NET, в том числе uint64
begin
writeln('Введите a,b');
readln(a,b);
c:=a+b;
writeln(c);
end.

то же самое на C#. Необращайте внимание на размер кода - ПООП того стоит))):

using System; //сокращаем команды

namespace someone                  // создаём некое пространство имён для работы в нём
{
             class myclass
        {
                    static void Main()      //статический метод, название Main говорит о том, что это точка входа в программу, void - метод не возвращает результат. Пустые скобки - метод без аргументов.
                        {
                              
                              Console.WriteLine("Введите a,b");
                              int a= Convert.ToInt(Console.ReadLine());
                              int b= Convert.ToInt(Console.ReadLine());
                              int c=a+b;
                              Console.WriteLine("Результат "+ c);
                        }
          }
}

Прошу аналоги на питоне, бэйсике и рубине

Отредактировано Armanx64 (31-10-09 14:38:35)


Мой плейлист - - ->

"Тролль - это не консумент, а редуцент.
Потребляя гниль, он срёт кирпичами."(с)

Вне форума

#3 26-10-09 22:35:34

Невропаразитолог
Алексей
Здесь с 05-10-09
Сообщений: 2,729

Re: Языки программирования в обучении

Sinclair BASIC:

10 INPUT "Введите а, b";a,b
20 PRINT "a+b=";a+b

Vilnius BASIC:

10 PRINT "Введите числа a  и b"
20 INPUT a
30 INPUT b
40 LET c=a+b
50 PRINT "C=";c

wink


0_685e9_d23af5a0_XS.jpg очевидно-невероятное или невероятно-очевидное...

Вне форума

#4 26-10-09 23:16:17

Namolem
Участник
Здесь с 05-10-09
Сообщений: 165

Re: Языки программирования в обучении

PYthon

#coding=utf-8
a = raw_input('Введите а: ')
b = raw_input('Введите b: ')
c = int(a)+int(b)
print c

Отредактировано Namolem (26-10-09 23:17:43)

Вне форума

#5 26-10-09 23:20:37

Armanx64
Забанен
Откуда: -за леса, из-за гор
Здесь с 05-10-09
Сообщений: 1,434
Сайт

Re: Языки программирования в обучении

Вывод:
Первые два подойдут для обучения программирования, basic подойдёт для скриптов и макросов, а куда питон приделать? Может в одну коробку с бэйсиком?


Мой плейлист - - ->

"Тролль - это не консумент, а редуцент.
Потребляя гниль, он срёт кирпичами."(с)

Вне форума

#6 27-10-09 00:00:32

Namolem
Участник
Здесь с 05-10-09
Сообщений: 165

Re: Языки программирования в обучении

Armanx64

чего в питоне не хватает для обучения программированию?*

Вне форума

#7 27-10-09 00:48:46

Невропаразитолог
Алексей
Здесь с 05-10-09
Сообщений: 2,729

Re: Языки программирования в обучении

Усложняем задачу:

10 PRINT "Тренажёр клавиатуры ASCII: максимум букв из 100 попыток"
20 LET missed=0
30 FOR i=1 TO 100
40 LET char=INT (RND*93)
50 IF char<31 OR char>93 THEN GOTO 40 (здесь я опечатался, но поправил)
60 LET A$=CHR$ (char)
70 PRINT "Буква-";A$
80 LET B$=INKEY$
90 IF B$="" THEN GOTO 80
100 IF B$<>A$ THEN LET missed=missed+1
110 NEXT i
120 PRINT "Количество попаданий:";100-missed
130 STOP

Правда, в моей программе были ещё реализованы часы, для ограничения времени, но через чтение напрямую системных переменных счётчика обновлений экрана, посему я их отсюда выкинул. Итого тринадцать строчек. А каков размер подобного кода на других языках? Притом, что BASIC допускает более одного оператора в строке, но для наглядности, я "вытянул" листинг.

Отредактировано Невропаразитолог (27-10-09 00:53:00)


0_685e9_d23af5a0_XS.jpg очевидно-невероятное или невероятно-очевидное...

Вне форума

#8 27-10-09 00:58:08

Невропаразитолог
Алексей
Здесь с 05-10-09
Сообщений: 2,729

Re: Языки программирования в обучении

Простейший тренажёр  клавиатуры. На экране появляется буква, нужно нажать соответсвующую клавишу. Правда, русский алфавит "пролетает", но у меня на speccy не было русификатора, так что так...


0_685e9_d23af5a0_XS.jpg очевидно-невероятное или невероятно-очевидное...

Вне форума

#9 27-10-09 01:30:10

Namolem
Участник
Здесь с 05-10-09
Сообщений: 165

Re: Языки программирования в обучении

примерно так

from msvcrt import * # getch()
from random import * # случайный числа

fails = 0
for i in range(10): # i принимает все значения в отрезке 0,1,2,...,9
    a = randrange(61)+32 # случайное число 32,33,...,92
    print chr(a)+' ' # вывод символа
    b =ord(getchar()) # b - код символа (ord) нажатой клавиши (getchar())
    if a!=b: # если промахнулся
        fails+=1 # записать это
print("You have ",fails," fails")

# вывод кол-ва промахов

Отредактировано Namolem (27-10-09 11:00:43)

Вне форума

#10 27-10-09 01:35:22

Невропаразитолог
Алексей
Здесь с 05-10-09
Сообщений: 2,729

Re: Языки программирования в обучении

Ждём версий на других языках, а потом сделаем выводы, что более подходит для наглядного объяснения алгоритмов.


0_685e9_d23af5a0_XS.jpg очевидно-невероятное или невероятно-очевидное...

Вне форума

#11 27-10-09 01:36:49

Namolem
Участник
Здесь с 05-10-09
Сообщений: 165

Re: Языки программирования в обучении

не совсем уверен, бэйсик не знаю, по по-моему у тебя тут не от 1 до 100

30 FOR i=1 TO 100
40 LET char=INT (RND*93)
50 IF char<31 OR char>93 THEN GOTO 30

Вне форума

#12 27-10-09 01:43:00

Невропаразитолог
Алексей
Здесь с 05-10-09
Сообщений: 2,729

Re: Языки программирования в обучении

Пардон, глаза слипаются, сейчас поправлю на GOTO 40. Спасибо, я думал и читать-то такую древность никто не будет...


0_685e9_d23af5a0_XS.jpg очевидно-невероятное или невероятно-очевидное...

Вне форума

#13 27-10-09 10:54:27

Armanx64
Забанен
Откуда: -за леса, из-за гор
Здесь с 05-10-09
Сообщений: 1,434
Сайт

Re: Языки программирования в обучении

Namolem,  раскомментируйте пожалуйста программу, что бы было понятно гди и зачем какая фигня.
И про IronPython.NET не забывайте


Мой плейлист - - ->

"Тролль - это не консумент, а редуцент.
Потребляя гниль, он срёт кирпичами."(с)

Вне форума

#14 27-10-09 11:06:32

Namolem
Участник
Здесь с 05-10-09
Сообщений: 165

Re: Языки программирования в обучении

сделал..
вот программа нахождения 10 членов последовательности фибоначчи. Как она будет выглядеть на других языках?

def fibo(n):
    a, b = 0, 1
    while b < n:
        print b,
        a, b = b, a+b
fibo(10)

Отредактировано Namolem (27-10-09 11:13:35)

Вне форума

#15 27-10-09 17:33:42

Невропаразитолог
Алексей
Здесь с 05-10-09
Сообщений: 2,729

Re: Языки программирования в обучении

Короче, походу стоит переезжать в ветку "Программирование".


0_685e9_d23af5a0_XS.jpg очевидно-невероятное или невероятно-очевидное...

Вне форума

#16 27-10-09 20:36:11

MOP3E
Участник
Здесь с 05-10-09
Сообщений: 4,208

Re: Языки программирования в обучении

Namolem пишет:

сделал..
вот программа нахождения 10 членов последовательности фибоначчи. Как она будет выглядеть на других языках?

def fibo(n):
    a, b = 0, 1
    while b < n:
        print b,
        a, b = b, a+b
fibo(10)

Помниццо, на заре программирования были конкурсы по написанию самого неудобочитаемого кода на Це. Как раз вот эта строчка a, b = b, a+b мне эти конурсы напомнила. Давайте уже не экономить строки, если программа делается в школе и для детишек. Тем более, что и взрослые дяди не всегда в таком коде с первого раза разберутся.


Я не игрушечный. Я, б*я, коллекционный! (с) Duke Nukem Forever
Я не специалист по [вставить название]. Мне главное концептуально решить задачу! (с) АхаRu.
Линукс - это альтернативная ОС о которой известно, что она не является ОС ну вот просто ни разу. (с) Linups_Troolvalds.
А с какого такого перепугу пользователей линукса должно быть больше 1%? (с) petrun

Вне форума

#17 27-10-09 21:07:58

Namolem
Участник
Здесь с 05-10-09
Сообщений: 165

Re: Языки программирования в обучении

неужели это

a, b = b, a+b

менее понятно, чем

int a,b,temp;
temp = a;
a = b;
b = temp + a;

?

Вне форума

#18 27-10-09 21:47:26

city17
Участник
Откуда: Украина
Здесь с 08-10-09
Сообщений: 22

Re: Языки программирования в обучении

QBASIC:

PRINT "Тренажёр клавиатуры ASCII: максимум букв из 100 попыток"
MISSED = 0
FOR i = 1 TO 100
1 : CHAR = INT(RND * 93)
IF CHAR < 31 OR CHAR > 93 THEN GOTO 1
A$ = CHR$(CHAR)
PRINT "Буква - "; A$
2 : B$ = INKEY$
IF  B$ = "" THEN GOTO 2
IF B$ <> A$ THEN MISSED = MISSED + 1 (Тут была ошибка, пардон, недоглядел.)
NEXT i
PRINT "Количество попаданий: "; 100 - MISSED
END

QBASIC без GOTO (ну не люблю я этот оператор smile ), с выравниванием (отсутствие форматирования затрудняет чтение кода):

PRINT "Тренажёр клавиатуры ASCII: максимум букв из 100 попыток"
MISSED = 0
FOR i = 1 TO 100
  DO
    CHAR = INT(RND * 93)
  LOOP WHILE CHAR < 31 OR CHAR > 93
  A$ = CHR$(CHAR)
  PRINT "Буква - "; A$
  DO
    B$ = INKEY$
  LOOP WHILE B$ = ""
  IF B$ <> A$ THEN MISSED = MISSED + 1 (Тут была ошибка, пардон, недоглядел.)
NEXT i
PRINT "Количество попаданий: "; 100 - MISSED
END

PS. Про GOTO в школе лучше вообще не рассказывать. smile

Отредактировано city17 (30-10-09 16:59:12)

Вне форума

#19 27-10-09 22:21:17

MOP3E
Участник
Здесь с 05-10-09
Сообщений: 4,208

Re: Языки программирования в обучении

Namolem пишет:

неужели это

a, b = b, a+b

менее понятно, чем

int a,b,temp;
temp = a;
a = b;
b = temp + a;

?

Да, менее понятно. Есть ещё очень хорошие запутывающие операторы, такие как +=, -= и т.п., а также самый запутывающий, на мой взгляд, оператор ?= :, реализующий функционал стандартного IF...THEN...ELSE...ENDIF. Эти операторы удобны только тем, что позволяют сделать более компактный код... за счёт ухудшения его читаемости.


Я не игрушечный. Я, б*я, коллекционный! (с) Duke Nukem Forever
Я не специалист по [вставить название]. Мне главное концептуально решить задачу! (с) АхаRu.
Линукс - это альтернативная ОС о которой известно, что она не является ОС ну вот просто ни разу. (с) Linups_Troolvalds.
А с какого такого перепугу пользователей линукса должно быть больше 1%? (с) petrun

Вне форума

#20 27-10-09 23:47:36

Namolem
Участник
Здесь с 05-10-09
Сообщений: 165

Re: Языки программирования в обучении

не согласен с тобой, но смысла спорить о таких вещах не вижу

Вне форума

#21 28-10-09 20:27:45

ALEX
Участник
Откуда: Нерезиновск
Здесь с 03-10-09
Сообщений: 1,014

Re: Языки программирования в обучении

russia.ru/video/diskurs_7048/

Доставляющее интервью Алксниса.  big_smile

Вне форума

#22 28-10-09 21:41:46

Невропаразитолог
Алексей
Здесь с 05-10-09
Сообщений: 2,729

Re: Языки программирования в обучении

city17 пишет:

PS. Про GOTO в школе лучше вообще не рассказывать. smile

Вот опять, ради чего, ограничивать кого-либо из-за технически необоснованной традиции ненавидеть GOTO? Уберите из языка все операторы DO...LOOP, FOR...NEXT, WHILE...AGAIN, UNTIL...AGAIN, GOSUB...RETURN, их модификации и комбинации, и... весь их функционал прекрасно реализуется одной-единственной GOTO с применением IF...THEN...ELSE. Говоря о традициях - вспомните ассмблер, команду безусловного перехода jpNNNN - прямой предок GOTO. Вот вам и преемственность.

Linux_must_die!, Спасибо за ссылку, РЖАЛЪ. Оказывается, нажимая кнопки в Windows, пользователь нихера не понимае, что он делает... Сдаёт дедушка, в маразм впадает. А ещё и требует от школьников бесплатно тестировать ALT. Как не стыдно, бесплатный детский труд использовать. Фу!


0_685e9_d23af5a0_XS.jpg очевидно-невероятное или невероятно-очевидное...

Вне форума

#23 28-10-09 23:45:12

БШЛ
Участник
Здесь с 03-10-09
Сообщений: 321

Re: Языки программирования в обучении

Невропаразитолог пишет:

Сдаёт дедушка, в маразм впадает. А ещё и требует от школьников бесплатно тестировать ALT. Как не стыдно, бесплатный детский труд использовать. Фу!

Не менее глобально доставляющее интервью поциента по основополагающим основам бытия. Пардон за тафтологию.

soft.mail.ru/interview_page.php?id=135

Таки да, маразм имеет место быть.


Афтар благодарен алфавиту за любезно предоставленные буквы.

Вне форума

#24 29-10-09 11:25:26

Невропаразитолог
Алексей
Здесь с 05-10-09
Сообщений: 2,729

Re: Языки программирования в обучении

city17 пишет:

QBASIC:

IF B$ = A$ THEN MISSED = MISSED + 1   

При совпадении, наращиваем счётчик промахов?


0_685e9_d23af5a0_XS.jpg очевидно-невероятное или невероятно-очевидное...

Вне форума

#25 30-10-09 02:47:33

Linups_Troolvalds
С нами Баг!
Откуда: Отовсюду
Здесь с 06-10-09
Сообщений: 2,100

Re: Языки программирования в обучении

static void Main()

За main, возвращающую void, следует бить головой об backspace. Читайте описания стандартов, вникайте.


.:``́3̶E̶P̶O̶W̶h̶`́`:.

Вне форума

Сейчас в этой теме пользователей: 0, гостей: 1
[Bot] ClaudeBot

Подвал форума

Под управлением FluxBB
Модифицировал Visman

[ Сгенерировано за 0.011 сек, 7 запросов выполнено - Использовано памяти: 1.76 Мбайт (Пик: 1.84 Мбайт) ]