Форум программистов, компьютерный форум, киберфорум
QBasic
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.80/5: Рейтинг темы: голосов - 5, средняя оценка - 4.80
emilliys
0 / 0 / 0
Регистрация: 28.11.2011
Сообщений: 7
1

Упорядочить строки по алфавиту

28.11.2011, 19:14. Просмотров 995. Ответов 12
Метки нет (Все метки)

Добрый вечер. Вопрос по двум задачам.
Первая это необходимо написать программу для открытия файла и упорядочивания буквенного массива (список фамилий, не важно на каком языке, хотябы на англиском) из неё по алфавиту, вообще нет идей как реализовать это в qbasic.

Вторая задача это секундомер, что я уже сделал, но необходимо сделать так, чтобы помимо запуска по нажатию клавиши (что тоже сделано) он также тормозил и снова запускался с остановленного места также по нажатию клавиши, у меня работает только если удерживать пробел.

PureBasic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
CLS
c = 3.141592653589793# / 180
SCREEN 9
CIRCLE (320, 175), 150, 7
FOR i = 1 TO 360 STEP 12
LINE (320 + 145 * SIN(c * i), 175 - 105 * COS(c * i))-(320 + 150 * SIN(c * i), 175 - 110 * COS(c * i)), 4
NEXT i
SLEEP
FOR i = 1 TO 1080 STEP .31
DO
LINE (320, 175)-(320 + 120 * SIN(c * i), 175 - 96 * COS(c * i)), 7
FOR j = 1 TO 510
s = .1234
s = (SIN(s ^ 3)) ^ 3
NEXT j
LINE (320 + 120 * SIN(c * i), 175 - 96 * COS(c * i))-(320, 175), 0
LOOP WHILE INKEY$ = " "
NEXT i
END
Помогите пожалуйста, буду очень благодарен.
0
QA
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
28.11.2011, 19:14
Ответы с готовыми решениями:

Упорядочить по алфавиту
Дан массив из 4 четырёхбуквенных русских слов существительных и нарицательных), в единственном...

Упорядочить слова по алфавиту
Дан массив из 6 четырёхбуквенных русских слов существительных и нарицательных), в единственном...

Упорядочить буквы массива по алфавиту
Дан массив из 6 четырёхбуквенных русских слов существительных и нарицательных), в единственном...

Упорядочить строки по алфавиту
Господа, а в графике кто нибуть решал данный вопрос? перенес вопрос в отдельную тему, вот...

12
кот Бегемот
Платежеспособный зверь
8622 / 4040 / 1576
Регистрация: 28.10.2009
Сообщений: 10,714
28.11.2011, 19:40 2
1 задача проста как апельсин.
PureBasic
1
2
3
4
5
6
dim a$(1000)
open "input.txt"for input as#1
do while not eof(1)
k=k+1
input #1,a$(k)
loop
А дальше просто сортируешь массив по возрастанию и выводишь.
1
emilliys
0 / 0 / 0
Регистрация: 28.11.2011
Сообщений: 7
28.11.2011, 20:31  [ТС] 3
Да вот как раз вопрос в реализации, как БУКВЫ то сортировать, тем более если допустим будут идти два повторяющихся символа, пример:
Apol
Aapin
как такое сортировать, есть идея вот такая

PureBasic
1
2
if n=a then a=1=x
if n=b and b>a then b=1, and a=x-1
Добавлено через 36 минут
но опять же всё в буквы упирается
0
кот Бегемот
Платежеспособный зверь
8622 / 4040 / 1576
Регистрация: 28.10.2009
Сообщений: 10,714
28.11.2011, 20:53 4
Что вы голову морочите? Причём здесь буквы? Строковые переменные сортируются в лексикографическом порядке, т.е. так, как они расположены в словаре:

ваза
вброс
ввод
вода

и т.д.

PureBasic
1
2
3
4
5
for i=1 to k
for j=2 to k
if a$(j)<a$(j-1) then swap a$(j),a$(j-1)
next
next
Добавлено через 13 минут
Во второй задаче используйте функцию inkey$.
И вообще, Вы бы матчасть почитали, а то берётесь за написание программ, не зная основных вещей.
1
emilliys
0 / 0 / 0
Регистрация: 28.11.2011
Сообщений: 7
28.11.2011, 23:13  [ТС] 5
эм...во второй программе вообще то и идёт через inkey$ эксперементировал и с do loop while и do loop until ,работает при первом варианте если только зажат пробел, в это проблема

Добавлено через 22 минуты
за первую прогу за помощь огромное спасибо, как оказалось все гениальное просто
0
кот Бегемот
Платежеспособный зверь
8622 / 4040 / 1576
Регистрация: 28.10.2009
Сообщений: 10,714
28.11.2011, 23:18 6
PureBasic
1
2
3
4
do
a$=inkey$
beep
loop until a$<>""
Это работает для любой клавиши
PS beep здесь для иллюстрации
а если вам запускать надо, сбросьте inkey$, приравняв снова его= ""
0
emilliys
0 / 0 / 0
Регистрация: 28.11.2011
Сообщений: 7
28.11.2011, 23:25  [ТС] 7
Проблема сохранилась, теперь работает только при зажатой клавише, надо же чтоб тормозила и запускалась с того же места по одному нажатию... с until и while уже как и не экспериментировал...
0
кот Бегемот
Платежеспособный зверь
8622 / 4040 / 1576
Регистрация: 28.10.2009
Сообщений: 10,714
28.11.2011, 23:34 8
такой вариант:
PureBasic
1
2
3
4
do
a$=inkey$
if a$="5"then sleep
loop
останавливаете клавишей 5, запускаете любой другой
1
Quiet Snow
Нарушитель
4489 / 1343 / 378
Регистрация: 25.04.2010
Сообщений: 3,543
28.11.2011, 23:40 9
Проблема сохранилась, теперь работает только при зажатой клавише, надо же чтоб тормозила и запускалась с того же места по одному нажатию...
Введите переменную для состояния. Дальше по условию анализируйте и выполняйте действие
в зависимости от состояния.

c = 3.141592653589793#

Не по теме:

Ну вот мне осталось запомнить ещё 4 цифры, для максимальной точности))):D

1
emilliys
0 / 0 / 0
Регистрация: 28.11.2011
Сообщений: 7
29.11.2011, 00:11  [ТС] 10
Цитата Сообщение от кот Бегемот Посмотреть сообщение
такой вариант:
PureBasic
1
2
3
4
do
a$=inkey$
if a$="5"then sleep
loop
останавливаете клавишей 5, запускаете любой другой
эм,не хочу показаться назойливым, но что-то не фурычит... возможно я не правильно располагают это в самом коде программы?

PureBasic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
CLS
c = 3.141592653589793# / 180
SCREEN 9
CIRCLE (320, 175), 150, 7
FOR i = 1 TO 360 STEP 12
LINE (320 + 145 * SIN(c * i), 175 - 105 * COS(c * i))-(320 + 150 * SIN(c * i), 175 - 110 * COS(c * i)), 4
NEXT i
SLEEP
FOR i = 1 TO 1080 STEP .31
do
a$=inkey$
if a$="5" then sleep
loop
LINE (320, 175)-(320 + 120 * SIN(c * i), 175 - 96 * COS(c * i)), 7
FOR j = 1 TO 510
s = .1234
s = (SIN(s ^ 3)) ^ 3
NEXT j
LINE (320 + 120 * SIN(c * i), 175 - 96 * COS(c * i))-(320, 175), 0
NEXT i
END
0
кот Бегемот
Платежеспособный зверь
8622 / 4040 / 1576
Регистрация: 28.10.2009
Сообщений: 10,714
29.11.2011, 00:18 11
у вас пустой цикл идёт, а должна программа выполняться между do и loop. напишите loop в конце программы вместо end а точнее перед next i (а может и цикл for надо в do loop загонять, я не вчитывался в программу)
1
Quiet Snow
Нарушитель
4489 / 1343 / 378
Регистрация: 25.04.2010
Сообщений: 3,543
29.11.2011, 04:12 12
Вот вы делаете секундомер, а где у вас привязка ко времени?
Или это типа макет?

Так уж и быть, держите:
Шкала теперь посекундная, останавливать и запускать пробелом, сброс - ENTER'ом,
т.к. скрин 9, вставил дабл буфер, синхронизировал по времени. Динамически, согласно
состоянию исчисляем разность во времени и согласно ей устанавливаем положение стрелки.
PureBasic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
CLS
  c = 3.14159265358# / 30
  DIM k(1) AS SINGLE
  DIM Act%, Viz%
  Act% = 1
SCREEN 9
 
State = 0  'Sekundomer stoit
 
DO: Kb$ = INKEY$
 Sek = TIMER
  IF Kb$ = " " THEN State = 1 - State: k(State) = Sek - k(1 - State)
  IF Kb$ = CHR$(13) THEN k(1) = Sek: k(0) = 0
  IF State THEN k(0) = Sek - k(State)
 CLS 2
    CIRCLE (320, 175), 150, 7
    FOR i = 0 TO 60 STEP 1
    LINE (320 + 145 * SIN(c * i), 175 - 105 * COS(c * i))-(320 + 150 * SIN(c * i), 175 - 110 * COS(c * i)), 4
    NEXT i
 
 LINE (320, 175)-(320 + 120 * SIN(c * k(0)), 175 - 96 * COS(c * k(0))), 7
 
    SWAP Act%, Viz%
    SCREEN , , , Viz%
    WAIT &H3DA, 8
    SCREEN , , Act%, Viz%
LOOP UNTIL Kb$ = CHR$(27)
1
emilliys
0 / 0 / 0
Регистрация: 28.11.2011
Сообщений: 7
29.11.2011, 16:33  [ТС] 13
Спасибо всем, последнюю программу я не взял, смысл был построить именно на моей стоп и плей, но всё равно спасибо, смог сделать стоп на 5 и плей на любую, и ОГРОМНОЕ спасибо за первую прогу!
0
29.11.2011, 16:33
Answers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
29.11.2011, 16:33

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

Упорядочить слова строки по алфавиту
Здравствуйте! Уважаемые форумчане, выручите, пролежал в больничке на этой теме, а закрыть семак...

Упорядочить символы строки по алфавиту
Здравствуйте! Я пытаюсь написать программу для сортировки символов в строке в алфавитном порядке, и...

Упорядочить строки матрицы по алфавиту
Дана символьная матрица. Упорядочить строки матрицы по алфавиту. Помогите пожалуйста.

Упорядочить слова по алфавиту (строки)
Здравствуйте! Не могу пока осилить :wall:. Может у кого-то есть идеи по реализации ? (или уже...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
13
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2020, vBulletin Solutions, Inc.