Автор Тема: Проект за ускорено обучение  (Прочетена 4407 пъти)

gromeo

  • Напреднали
  • *****
  • Публикации: 220
    • Профил
    • WWW
Здравейте. Искам да ви представя нов проект, който за съжаление засега работи само под бозата... Направил съм един сайт, Brainstorm, на който можете да разберете повече. Става въпрос за скоростното четене. За съжаление не намерих качествена програма, която да работи под Линукс, и която да помага на хората да усвоят скоростното четене. За тези, които не обичат да четат - недейте да продължавате, защото започвам да описвам проекта с подробности! '<img'>
Та става въпрос за това. За да се научи човек да чете по-бързо от обикновено, компютърът е много полезен. Той чете от даден текстов файл, и изкарва на екрана с определен интервал текст. Текстът се появява и изчезва със скорост, с която е едва забележим - не може да бъде прочетен на глас поради високата скорост, но в същото време скоростта е достатъчно ниска, за да може да се схване смисъла. Аз съм пълен ламер в програмирането, а и в шел скриптовете... Има ли вариант на скрипт, който да може да прочита даден файл, и да го изкарва думите една след друга през определен интервал от време, като интервала да се чете от конфигурационен файл? Вярвам, че с увеличаването на популярността на проекта ще се създаде и работеща програма, с възможностите, които имат алтернативите за Уиндоус...
Активен

Дистрибуции по 2 лв. на диск
http://www.linuxsupport.hit.bg

ntenev

  • Напреднали
  • *****
  • Публикации: 125
    • Профил
Проект за ускорено обучение
« Отговор #1 -: Jun 16, 2004, 13:19 »
Може. Ето и примерен bash код който извежда думите в текстов файл една по една (на ред) през 1 секунда. Кода е доста примерен но доколкото разбрах от това което си написал в общи линии трябва да прави горе долу това.
Изпълни файла със:
./ИмеНаФайл ИмеНаТекстовФайл

Примерен код

#!/bin/bash

echo -e "\n\n"

for Words in `cat $1`; do
   echo $Words;
   sleep 1;
 done

echo -e "\n\n"



Поздрави !
Н. Тенев
Активен

gromeo

  • Напреднали
  • *****
  • Публикации: 220
    • Профил
    • WWW
Проект за ускорено обучение
« Отговор #2 -: Jun 16, 2004, 13:22 »
Добре де, ами ако искам да става през 0.2 секунди?
Активен

Дистрибуции по 2 лв. на диск
http://www.linuxsupport.hit.bg

gromeo

  • Напреднали
  • *****
  • Публикации: 220
    • Профил
    • WWW
Проект за ускорено обучение
« Отговор #3 -: Jun 16, 2004, 14:19 »
Добре, това със секундите го реших как става - елементарно, и направих така, че екранът да се чисти след всяка дума - остава да решим проблема с това думите да се появяват в центъра на екрана... Моля ви, помогнете - това ще е от значителна полза и за вас, след като прочетете текста от гореспоменатия сайт и се научите да четете с пъти по-бързо! Без майтап. Само да го накараме да работи скриптчето!
Примерен код
#!/bin/bash

echo -e "\n\n"

for Words in `cat $1`; do
   echo $Words;
   sleep 0.1;
   clear;
 done

echo -e "\n\n"

Та значи това е модифицираното скриптче.
Активен

Дистрибуции по 2 лв. на диск
http://www.linuxsupport.hit.bg

ntenev

  • Напреднали
  • *****
  • Публикации: 125
    • Профил
Проект за ускорено обучение
« Отговор #4 -: Jun 16, 2004, 14:36 »
Примерен код

#!/bin/bash

echo -e "\n\n"

for Words in `cat $1`; do
  echo -n $Words;
  echo -n " "
  sleep 0.1;
done

echo -e "\n\n"



Това пък ще ти извежда всички думи на един ред (второто echo е да оставя интервал м/у тях ( има и по-елегантни решения) ), но това са малките проблеми. Има по-интересни неща. В интерес на истината не знам при bash+echo как точно ще стане, но имам идеи за С++ а там могат да се вкарат и доста допълнителни неща + GUI за KDE, GNOME и т.н. Но за момента съм зает (все пак и работя '<img'>     ). Довечера или утре по някое време мога да дам някакво решение

Поздрави !
Н. Тенев
Активен

gromeo

  • Напреднали
  • *****
  • Публикации: 220
    • Профил
    • WWW
Проект за ускорено обучение
« Отговор #5 -: Jun 16, 2004, 14:47 »
Н. Тенев, ако тръгна да ти благодаря - няма спиране. Да знаеш, че ако стане работата - ей.... Ама - добре, да речем със С++ го направим да работи - примерно едно прозорче, в него - меню отвори файл, и две бутончета - за ускоряване и намаляване на скоростта. Примерно шрифта също ще трябва да се избира, но това го има като контрол в QT - днес ще се пробвам да направя някво GUI но ... то е най-лесната част - аз лично под Линукс досега не съм писал програми, а последната малка програмка която писах на С++ беше преди 2 години... а у нас съм само с линукс и не мога да си инстална Visual C++ '<img'>
Добре - може ли някой да напише функциите на някакъв език, и да ги постне тук - много ще ни е от полза...
После в About на програмата ще включим имената на всички участвали - а и на гореспоменатия сайт ...  '<img'>
Лично моето име може и да не се споменава - важна е идеята.
Активен

Дистрибуции по 2 лв. на диск
http://www.linuxsupport.hit.bg

ntenev

  • Напреднали
  • *****
  • Публикации: 125
    • Профил
Проект за ускорено обучение
« Отговор #6 -: Jun 16, 2004, 15:41 »
Утре (16.07.2004) ще се постарая да има нещо готово, поне като полу-работеща концепция. Междувременно, ако искаш, разгледай KDevelop - доста приятно приложение за разработка към сума и езици, QTAssistant - там са описани всички класове на QT, а има и доста примерни кодове, също така и QTDesigner - за разработка именно на графичния интерфейс и tool-че за обръщането на стандартния му файл ( *.ui мисля че беше ) в съответсващите *.cpp *.h файлове ( man uic )

Аз лично каквото и да направя, почти е сигурно че ще го правя именно чрез тези приложения.

Поздеави !
Н. Тенев

btw: Казвам се Николай. '<img'>
Активен

gromeo

  • Напреднали
  • *****
  • Публикации: 220
    • Профил
    • WWW
Проект за ускорено обучение
« Отговор #7 -: Jun 16, 2004, 16:45 »
Ники - мога ли така да те наричам - аз съм Алекс - супер - аз ги знам тез програми, ама най-умното, което съм писал на С++, беше.... деструктивна програмка за и-нет клубове.. нищо особено... Ама поне ще ги разгледам тез програмки, които ми даде, и ще се опитам да направя нещо. Дано да излезе работещо приложение (в което не се съмнявам) - леле ако знаеш на хората колко ще им е по-лесно да четат текстове с тази програма! Аз лично едно време като имах Уин само с такива програми четях... Супер гот!
Активен

Дистрибуции по 2 лв. на диск
http://www.linuxsupport.hit.bg

gromeo

  • Напреднали
  • *****
  • Публикации: 220
    • Профил
    • WWW
Проект за ускорено обучение
« Отговор #8 -: Jun 16, 2004, 16:58 »
Между другото, като целеви вариант остава
Примерен код
#!/bin/bash
for Words in `cat $1`; do
   echo $Words;
   sleep 0.15;
   clear;
 done


- причината е, че на екрана по всяко едно време не трябва да има повече от една дума - това е целта на занятието - и думите трябва да се появяват през определен период от време - като горедадения например. Проблема е да накараме думите да се появяват не в горния ляв ъгъл на екрана, а в центъра му. Добра идея е също така думите да са със зелен цвят на черен фон за лесно четене и с големина 12 до 16 или максимум 22 - но това е вече глезотия  '<img'>
Активен

Дистрибуции по 2 лв. на диск
http://www.linuxsupport.hit.bg

ivak

  • Напреднали
  • *****
  • Публикации: 156
    • Профил
Проект за ускорено обучение
« Отговор #9 -: Jun 16, 2004, 22:03 »
Цитат (gromeo @ Юни 16 2004,17:58)
Проблема е да накараме думите да се появяват не в горния ляв ъгъл на екрана, а в центъра му. Добра идея е също така думите да са със зелен цвят на черен фон за лесно четене и с големина 12 до 16 или максимум 22 - но това е вече глезотия  '<img'>


позиционирането в центъра на екрана и оцветяването в зелено
можеш да ги направиш чрез ANSI ESC последователности.
конзолата на линукс емулира VT100 терминал и разпознава
повечето ESC кодове. същото прави и xterm, така че
програмката ти ще работи и под Х-ъ.
Активен

Cлoжнитe пpoблeми имaт пpocти и лecни зa paзбиpaнe гpeшни oтгoвopи.

gromeo

  • Напреднали
  • *****
  • Публикации: 220
    • Профил
    • WWW
Проект за ускорено обучение
« Отговор #10 -: Jun 16, 2004, 22:57 »
Какви последователности? Може ли пример, защото не съм запознат... съжалявам.. нов съм още.. . '<img'>
Активен

Дистрибуции по 2 лв. на диск
http://www.linuxsupport.hit.bg

gromeo

  • Напреднали
  • *****
  • Публикации: 220
    • Профил
    • WWW
Проект за ускорено обучение
« Отговор #11 -: Jun 17, 2004, 16:01 »
Промяна на кода - поради моята глупост не я бях забелязал тази грешка - тъй като думите трябва да се появяват по 25 пъти в секунда (който разбира защо - браво) - та ето редактираното скриптче:
Примерен код
#!/bin/bash
for Words in `cat $1`; do
  echo $Words;
  sleep 0.04;
  clear;
done

като за тези, които не са чели внимателно, идеята е текста да се появява в центъра на екрана (не на реда) на конзолата. Моля за съдействие - все още не ми е ясно какви Esc последователности да сложа в този скрипт, за да се осъществи идеята.
Активен

Дистрибуции по 2 лв. на диск
http://www.linuxsupport.hit.bg

gromeo

  • Напреднали
  • *****
  • Публикации: 220
    • Профил
    • WWW
Проект за ускорено обучение
« Отговор #12 -: Jun 17, 2004, 22:27 »
Нов проблем - на работата с инсталирания Кнопикс скрипта вървеше като по вода, без никакви съобщения за грешка - сега - когато го пускам на домашния инсталиран от Дебиан инсталатор, дава съобщение за грешка за параметъра sleep - не бил валиден интервал, въпреки това работи на този интервал, но показва на всяка 1/25 от секундата заедно със текста и съобщение, че това не било позволен интервал. Как да подтисна това съобщение, така че да не се появява, или пък някой да ми каже друг вариант за таймер?
Активен

Дистрибуции по 2 лв. на диск
http://www.linuxsupport.hit.bg

gromeo

  • Напреднали
  • *****
  • Публикации: 220
    • Профил
    • WWW
Проект за ускорено обучение
« Отговор #13 -: Jun 17, 2004, 22:30 »
реших проблема като смених точката със запетая, ако някой има такъв проблем, да знае, че така се решава. Остава въпросът за позиционирането в центъра на екрана........
Активен

Дистрибуции по 2 лв. на диск
http://www.linuxsupport.hit.bg

ivak

  • Напреднали
  • *****
  • Публикации: 156
    • Профил
Проект за ускорено обучение
« Отговор #14 -: Jun 21, 2004, 21:54 »
не е зле освен форума понякога да питаш и google.
примерно, полезно инфо по въпроса за управлението на
текстовия терминал можеш да намериш в BASH Prompt HOWTO,
да речем в раздел:

ANSI Escape Sequences: Colours and Cursor Movement

нещата, описани там, важат и за обикновената echo команда.

това по принцип е "правилният" начин да се пише по екрана,
ако искаш програмата ти да работи на (почти) всеки терминал.
(под "терминал" в случая разбирай текстовия прозорец на
операционната система; не си представяй някакъв допотопен
"телевизор с пишеща машина".)
Активен

Cлoжнитe пpoблeми имaт пpocти и лecни зa paзбиpaнe гpeшни oтгoвopи.