Форум программистов, компьютерный форум, киберфорум
Turbo Pascal
Войти
Регистрация
Восстановить пароль
Результаты опроса: Из-за чего вы просмотрев эту тему уходите?
Слишком сложно для Вас. 0 0%
Вам надо время подумать. 0 0%
Вы хотите отлложить это напотом. 1 50.00%
Слишком просто для Вас 1 50.00%
Голосовавшие: 2. Вы ещё не голосовали в этом опросе

 
Рейтинг 4.67/6: Рейтинг темы: голосов - 6, средняя оценка - 4.67
(Yellow_Duck)
 Аватар для MadMag
1261 / 130 / 15
Регистрация: 16.10.2008
Сообщений: 733

Задача, изменение строки. Что не так?

27.10.2008, 17:05. Показов 1227. Ответов 8
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Вообщем такая фишка, во входном файле первая строка. Это строка над которой измываемся. Во второй строке количество операций N, которые будем производить над строкой. Операций тока две, одна - переворачивает часть слова, другая ставит все буквы по алфавитному порядку на куске массива.
Дальше идут N строчек, в которой написано сначала буква S(Сортировка) или R - разворот, Дальше идут два числа, первое - номер элемента массива с которого начинается операция, а второе - номер элемента, которым заканчиваются.
Вернее даже не номер элемента, а номер буквы.
Вот надо вывести в файл преобразованную строку.
например
helloworld
2
S 1 5
R 6 10



я написал, у меня по-отдельности все ок. вроде, он и разворачивает, и упорядочивает, да что там вроде, так и есть.
Но не может несколько операций сделать

Code
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
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
program Project1;
 
{$APPTYPE CONSOLE}
 
uses
  SysUtils;
 
var
  bin,bout:text;
  f:array[0..199] of char;
  a:array[0..199] of byte;
  b:array[0..199] of byte;
  slovo:array[0..199] of char;
  izm:array[0..199] of char;
  i,num,k,l:byte;
  TempBukva:char;
 
 
begin
assign(bin, 'morpher.in');reset(bin);
assign(bout,'morpher.out');rewrite(bout);
readln(bin, slovo);
readln(bin, num);
For i:=0 to num-1 do
  begin
     read(bin,f[i]);read(bin, a[i]);readln(bin, b[i]);
  end;
 
For i:=0 to num-1 do
   begin
     If f[i]='R' then
        begin
 
    for k:=0 to b[i]-a[i] do
       izm[k]:=slovo[a[i]-1+k];
 
     for k:=a[i]-1 to b[i]-1 do
          slovo[b[i]-k]:=izm[k-1];
      end
 
 
    Else begin
     for k:=a[i]-1 to b[i]-2 do
       begin
        for l:=k+1 to b[i]-1 do
           begin
             if slovo[k]>slovo[l] then
                 begin
                    tempbukva:=slovo[k];
                    slovo[k]:=slovo[l];
                    slovo[l]:=tempbukva;
                  end;
           end;
       end;
    end;
   end;
writeln(bout, slovo);
close(bin);close(bout);
end.
Добавлено через 16 часов 48 минут 36 секунд
ау

Добавлено через 2 часа 5 минут 7 секунд
Люди напишите плиз код, как развернуть часть строки, и вставть в эту строку
чтоб вместо jklokdr стал скажем jkRDKOL, или вместо JhellouK стал jOULLEHk

Добавлено через 55 минут 58 секунд
Code
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
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
program morpher;
 
{$APPTYPE CONSOLE}
 
uses
  SysUtils;
 
var
  bin,bout:text;
  f:array[0..199] of char;
  a:array[0..199] of integer;
  b:array[0..199] of integer;
  slovo:array[0..199] of char;
//  izm:array[0..199] of char;
  num:integer;
  TempBukva:char;
  n,i,k,l:integer;
 
 
begin
assign(bin, 'morpher.in');reset(bin);
assign(bout,'morpher.out');rewrite(bout);
readln(bin, slovo);
readln(bin, num);
For i:=0 to num-1 do
  begin
     read(bin,f[i]);read(bin, a[i]);readln(bin, b[i]);
  end;
 
 
 
For i:=0 to num-1 do
   begin
     If f[i]='R' then
        begin
 
 
    If odd(b[i]-a[i])=true then
     begin
     For k:=a[i]-1 to a[i]+((b[i]-a[i]-1) div 2)-1  do begin
 
 
         tempbukva:=slovo[k];
         slovo[k]:=slovo[b[i]-k+a[i]-2];
         slovo[b[i]-k+a[i]-2]:=tempbukva;
 
         end;
     end
    else
        begin
     For n:=a[i]-1 to a[i]+((b[i]-a[i]) div 2)-1  do begin
         tempbukva:=slovo[n];
         slovo[n]:=slovo[b[i]-n+a[i]-2];
         slovo[b[i]-n+a[i]-2]:=tempbukva;
 
         end;
         end;
         end
 
 
 
    Else begin
     for k:=a[i]-1 to b[i]-2 do
       begin
        for l:=k+1 to b[i]-1 do
           begin
             if slovo[k]>slovo[l] then
                 begin
                    tempbukva:=slovo[k];
                    slovo[k]:=slovo[l];
                    slovo[l]:=tempbukva;
                  end;
           end;
       end;
    end;
 
  end;
   writeln(bout, slovo);
close(bin);close(bout);
end.
Вот, считает правильно! как и доллжно считать, но почему то мне прога пишет, что в каком то месте она не правильно считает
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
27.10.2008, 17:05
Ответы с готовыми решениями:

задача,что не так?
ATA_SEG SEGMENT A BDW 12 B DW 15 C DW 3 DATA_SEG EDNS CODE_SEG SEGMENT ASSUME CS:CODE_SEG,DATA_SEG START:PUSH DS DR AX,AX ...

Простенькая задача но что-то не так
Ввести аргумент x с помощью клавиатуры, вычислить значение выражения f x и вывести его на экран монитора. program lab2; var...

Как сделать так, что бы длинна строки сама менялась при вводе строки?
Есть такой код #include "stdafx.h" #include "enter.h" #include <stdio.h> #include <math.h> #include <iostream> #include...

8
Of Wolf and Man
 Аватар для Xentar
999 / 198 / 5
Регистрация: 09.07.2008
Сообщений: 1,784
27.10.2008, 18:21
У меня времени писать нету, но тут глянул на твои типы - ужаснах !
Ты мне вот что скажи...
1 ) зачем тебе использовать массив char когда можно использовать 1 string
2 ) ты попробуй функциями сделать 1 и 2е действия - лучше будет проще и понятнее
3 )
Цитата Сообщение от YeLLoW DucK Посмотреть сообщение
но почему то мне прога пишет, что в каком то месте она не правильно считает
А что собственно она пишет ?
0
(Yellow_Duck)
 Аватар для MadMag
1261 / 130 / 15
Регистрация: 16.10.2008
Сообщений: 733
27.10.2008, 18:39  [ТС]
1)во-первых потому что при использовании строки получается как то криво, я уже пробовал.
а во вторых что плохого в массиве из символов???
он меньше чем строка занимает места между прочим.

Функциями....угумс, уже до этого начал делать.

Прога, которая принимает ответы пишит, что
Не правильный ответ в тесте 2
а так...все ок

Добавлено через 2 минуты 11 секунд
Какая разница использовать строку иди массив?

Добавлено через 7 минут 0 секунд
ты б не про типы мне парил, типа ладно работают. ты б сказал бы лучше про ошибку)
0
Почетный модератор
 Аватар для Puporev
64308 / 47605 / 32742
Регистрация: 18.05.2008
Сообщений: 115,181
27.10.2008, 18:39
Люди напишите плиз код, как развернуть часть строки, и вставть в эту строку
чтоб вместо jklokdr стал скажем jkRDKOL, или вместо JhellouK стал jOULLEHk
Какая разница использовать строку иди массив?
А вот такая. В строке ты можешь одной командой delete удалить сколько хочешь символов с любой позиции, а командой insert вставить в строку что хочешь, например: s1:=jklokdr; delete(s1,3,length(s1)-2); insert('RDKOL',s1,3);
write(s1); и получишь, что хочешь. Попробуй это сделать с массивами, намаешься.
В опросе нет ответа: Тошнит от Ваших кодов и путаницы в голове.
0
Of Wolf and Man
 Аватар для Xentar
999 / 198 / 5
Регистрация: 09.07.2008
Сообщений: 1,784
27.10.2008, 18:40
Цитата Сообщение от YeLLoW DucK Посмотреть сообщение
1)во-первых потому что при использовании строки получается как то криво, я уже пробовал.
А в чем собственно получается кривизна ?
1) строка используется так же как массив символов, с одним отличием S[0] - не начало массива, а эл-т указывающий текущую длинну строки(буквенного массива), т.к. сам массив начинается с эл-та S[1]
2) со строками можно использовать процедуры обработки строк.+ вроде (если правильно помню) строку можно читать из текстового файла целиком.
3) делаешь 2 функции и проверяешь их работоспособность - дальше проще...
Я всегда, если не получалось сразу написать проверял систему по элементам - т.е. проверяешь на ошибки каждую функцию по отдельности.
0
25 / 20 / 4
Регистрация: 13.03.2008
Сообщений: 79
27.10.2008, 18:41
он меньше чем строка занимает места между прочим.
При равном числе элементов массива и строки, строка занимает только на один байт больше (в нем длина строки хранится), когда работать с ней гораздо легче, в связи с уже упоминавшейся длиной строки и кучей уже описанных функций.
1)во-первых потому что при использовании строки получается как то криво, я уже пробовал.
сами же утверждали, что массив и строка одно и тоже, но почему-то со строкой у вас криво, наверное дело в руках...
Блин, извиняйте, пока писал - уже на постили))))
0
Of Wolf and Man
 Аватар для Xentar
999 / 198 / 5
Регистрация: 09.07.2008
Сообщений: 1,784
27.10.2008, 18:43
Цитата Сообщение от Xentar Посмотреть сообщение
А вот такая. В строке ты можешь одной командой delete удалить сколько хочешь символов с любой позиции, а командой insert вставить в строку что хочешь, например: s1:=jklokdr; delete(s1,3,length(s1)-2); insert('RDKOL',s1,3); write(s1); и получишь, что хочешь. Попробуй это сделать с массивами, намаешься. В опросе нет ответа: Тошнит от Ваших кодов и путаницы в голове.
Puporev,прав.

Добавлено через 44 секунды
Цитата Сообщение от Xentar Посмотреть сообщение
сами же утверждали, что массив и строка одно и тоже, но почему-то со строкой у вас криво, наверное дело в руках...

Evklid,и это тоже...
0
Почетный модератор
 Аватар для Puporev
64308 / 47605 / 32742
Регистрация: 18.05.2008
Сообщений: 115,181
27.10.2008, 18:44
Во, пошла тема!
0
(Yellow_Duck)
 Аватар для MadMag
1261 / 130 / 15
Регистрация: 16.10.2008
Сообщений: 733
27.10.2008, 19:13  [ТС]
Да блин!
вы попробуйте создайте console application с моим кодом, создайте файл, с каким нить словом на первой строчке, с количеством операций на втором, и дальше с описаниями операций строчки, которые в сумме дают количество операций, потом добавьте Watch и Add watch туда всуньте массивы slovo и массив a и массив b, а потом с нажатиями клавишь убедитесь в полной правиьности полняемых функций, типа разворот, или перестановка в алфавитном поядке

Ну хорошо, нету никакого запара, если взять строчку)
ну а кто говорил, что руки ровные)

Добавлено через 12 минут 15 секунд
........................................ ........................................ ...............................
"Заблуждение-это не что иное,как отклонение мысли, когда душа стремится к истине,но проносится мимо понимания." Платон.
........................................ ........................................ ...............................
ладно перепишу завтра или уже сегодня прогу на работу с функциями и строками
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
27.10.2008, 19:13
Помогаю со студенческими работами здесь

Задача Что в ней не так?выдает ошибку!
program Matrix_01; uses CRT; const NMAX=3; type AR_ONE = array of real; type AR_TWO = array of real; const A:AR_TWO =...

Задача на списки.Не могу понять,что делаю не так
Уважаемые форумчане,добрый вечер.Очень нужна ваша помощь. Значит у меня есть список пар городов,например: (a,b) (v,d) (a,b) (a,b) ...

что я делаю не так и чего мне не хватает? задача в описании
нужно сделать вот такой рисунок 1 1 1 1 1 1 1 0 1 1 1 1 1 0 0 0 1 1 1 0 0 0 0 0 1 0 0 0 0 0 1 1 1 0 0 0 1 1 1 1 1 0 ...

строки. что-то тут не так
вот код //Программа удаления из строки символов '0..9' #include<iostream> // заголовыочный файл с описаниями функций ввод\вывод ...

Вывод строки: что не так?
Здравствуйте! Задача ужасно простая, но не выводит, и все! Помогите, пожалуйста. model tiny .data a db (?) b db (?) ...


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

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

Новые блоги и статьи
Компиляция C++ с Clang API
NullReferenced 24.03.2025
Компиляторы обычно воспринимаются как черные ящики, которые превращают исходный код в исполняемые файлы. Мы запускаем компилятор командой в терминале, и вуаля — получаем бинарник. Но что если нужно. . .
Многопоточное программировани­е в C#: Класс Thread
UnmanagedCoder 24.03.2025
Когда запускается приложение на компьютере, операционная система создаёт для него процесс - виртуальное адресное пространство. В C# этот процесс изначально получает один поток выполнения — главный. . .
SwiftUI Data Flow: Передача данных между представлениями
mobDevWorks 23.03.2025
При первом знакомстве со SwiftUI кажется, что фреймворк предлагает избыточное количество механизмов для передачи данных: @State, @Binding, @StateObject, @ObservedObject, @EnvironmentObject и другие. . . .
Моки в Java: Сравниваем Mockito, EasyMock, JMockit
Javaican 23.03.2025
Как протестировать класс, который зависит от других сложных компонентов, таких как базы данных, веб-сервисы или другие классы, с которыми и так непросто работать в тестовом окружении? Для этого и. . .
Архитектурные паттерны микросервисов: ТОП-10 шаблонов
ArchitectMsa 22.03.2025
Популярность микросервисной архитектуры объясняется множеством важных преимуществ. К примеру, она позволяет командам разработчиков работать независимо друг от друга, используя различные технологии и. . .
Оптимизация рендеринга в Unity: Сортировка миллиона спрайтов
GameUnited 22.03.2025
Помните, когда наличие сотни спрайтов в игре приводило к существенному падению производительности? Время таких ограничений уходит в прошлое. Сегодня геймдев сталкивается с задачами совершенно иного. . .
Образование и практика
Igor3D 21.03.2025
Добрый день А вот каково качество/ эффективность ВУЗовского образования? Аналитическая геометрия изучается в первом семестре и считается довольно легким курсом, что вполне справедливо. Ну хорошо,. . .
Lazarus. Таблица с объединением ячеек.
Massaraksh7 21.03.2025
Понадобилась представление на экране таблицы с объединёнными ячейками. И не одной, а штук триста, и все разные. На Delphi я использовал для этих целей TStringGrid, и то, кривовато получалось. А в. . .
Async/await в Swift: Асинхронное программировани­е в iOS
mobDevWorks 20.03.2025
Асинхронное программирование долго было одной из самых сложных задач для разработчиков iOS. В течение многих лет мы сражались с замыканиями, диспетчеризацией очередей и обратными вызовами, чтобы. . .
Колмогоровская сложность: Приёмы упрощения кода
ArchitectMsa 20.03.2025
Наверное, каждый программист хотя бы раз сталкивался с кодом, который напоминает запутанный лабиринт — чем дальше в него погружаешься, тем сложнее найти выход. И когда мы говорим о сложности кода, мы. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru