2 / 2 / 6
Регистрация: 13.09.2013
Сообщений: 35
1

Сравнение по символам строки

30.09.2013, 22:36. Показов 838. Ответов 2
Метки нет (Все метки)

Суть такова
Только символьно и один массив
надо сравнить те строки где 20 символ равен "K"(грубо говоря)
те которые подходят сравнить с 16 по 19 символ (это 4 значное число 1264,6845,3593)
и вывести на экран максимальное число
и Минимальное

ТестМоя кривая прога)
Pascal
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
81
82
83
84
85
86
87
program z1;
uses crt;
type
t1=array[1..10,1..20] of char;
var
a:t1;
i,j,n,q,l,w,e,r:integer;
c,d:integer;
t:text;
begin
clrscr;
assign(output,'2.txt');
rewrite(output);
w:=20;
r:=1;
assign(input,'1.txt');
reset(input);
for i:=1 to 10 do
begin
 for j:=1 to 20 do
 begin
 read(a[i,j]);
 end;
readln;
end;
close(input);
for i:=1 to 10 do
begin
 for j:=1 to 20 do
 begin
 write(a[i,j]);
 end;
writeln;
end;
writeln('+');
for i:=1 to 9 do
begin
  for n:=i+1 to 10 do
  begin
  c:=0;
  if (a[r,w]=a[i,w])and(a[r,w]=a[n,w]) then
  q:=1;
  for j:=16 to 19 do
  begin
  if a[i,j]>a[n,j] then
  c:=c+1;
  if c=4 then
  begin
  c:=0;
  for j:=16 to 19 do
  if a[i,j]>a[q,j] then
  q:=n;
  end;
  end;
  end;
 
end;
for i:=1 to 9 do
begin
  for n:=i+1 to 10 do
  begin
  d:=0;
  for j:=15 to 19 do
  begin
  if (a[r,w]=a[i,w])and(a[r,w]=a[n,w]) then
  if a[i,j]<a[n,j] then
  d:=1;
  if d=1 then
  l:=n;
  end;
  end;
 
end;
 
 
write('Mlad');
for j:=1 to 20do
write(a[q,j]);
writeln;
 
Write('Star');
for j:=1 to 20do
write(a[l,j]);
close(output);
readkey;
 
end.
__________________
Помощь в написании контрольных, курсовых и дипломных работ, диссертаций здесь
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
30.09.2013, 22:36
Ответы с готовыми решениями:

Программа должна считывать с клавиатуры тестовые строки и записывать их в массив пока не будет введена строка длина которого не равна 4 символам
Программа должна считывать с клавиатуры тестовые строки и записывать их в массив пока не будет...

Найти слова, длина которых равна 5 символам, и удалить их из строки
Здравствуйте. Помогите, пожалуйста, решить следующую задачу. Задана строка-предложение....

Сравнение строк по их начальным символам
У нас есть файл с содержанием: 123|456 456|789 qwe|rty. В программу поступают данные qwe она...

Сравнение значений ячеек по первым символам
Добрый день, форумчане! Повторно обращаюсь за помощью, очень надо. Задача: в столбце &quot;А&quot;...

2
13089 / 5870 / 1706
Регистрация: 19.09.2009
Сообщений: 8,808
01.10.2013, 14:27 2
Можно так сделать:
Pascal
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
program Project1;
 
const
  Fn = '1.txt';
var
  F : Text;
  S : String;
  N, NMin, NMax, Cnt, Code : Longint;
begin
  Assign(F, Fn);
 
  repeat
    Reset(F);
    NMin := 0;
    NMax := 0;
    {Количество строк с "правильным" форматом.}
    Cnt := 0;
    while not Eof(F) do begin
      {Читаем строку.}
      Readln(F, S);
      {Проверка:
      - Длина строки >= 20.
      - Буква на 20-й позиции = 'К' или 'к' на русском или 'K' или 'k' на английском.}
      if (Length(S) >= 20) and (S[20] in ['К', 'к', 'K', 'k']) then begin
        {Попытка прочесть число.}
        Val(Copy(S, 16, 4), N, Code);
        {Если число успешно прочитано, то уточняем сведения о
        наименьшем и наибольшем числах.}
        if Code = 0 then begin
          Inc(Cnt);
          if Cnt = 1 then begin
            NMin := N;
            NMax := N;
          end else if N < NMin then
            NMin := N
          else if N > NMax then
            NMax := N;
        end;
      end;
    end;
    Close(F); {Закрываем файл.}
 
    {Ответ.}
    if Cnt > 0 then
      Writeln('Наименьшее число: ', NMin, ', наибольшее число: ', NMax)
    else
      Writeln('В файле нет ни одной строки с заданным форматом.');
 
    Writeln('Повторить - Enter. Выход - любой символ + Enter.');
    Readln(S);
  until S <> '';
end.
1
2 / 2 / 6
Регистрация: 13.09.2013
Сообщений: 35
03.10.2013, 00:49  [ТС] 3
А можно еще вот так , Спасибо
вопрос закрыт
Pascal
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
program z1;
uses crt;
type
t1=array[1..10,1..20] of char;
var
a:t1;
i,j,k:byte;
t:text;
begin
clrscr;
assign(output,'2.txt');
rewrite(output);
w:=20;
r:=1;
assign(input,'1.txt');
reset(input);
for i:=1 to 10 do
 begin
 for j:=1 to 20 do
 read(a[i,j]);
 readln;
 end;
close(input);
 
for i:=1 to 10 do
 begin
 for j:=1 to 20 do
 write(a[i,j]);
 writeln;
 end;
 
 
k:=1;
i:=0;
repeat
i:=i+1;
if (a[k,j]='M')and(a[i,j]='M') then
begin
begin
j:=16;
  while (a[k,j]=a[i,j]) and (j<=19) do
  j:=j+1;
   if (j<=19)and (a[k,j]>a[i,j]) then
   k:=i;
end;
{writeln('s  ', k );}
for j:=1 to 20 do
end;
until i>9;
writeln;
for j:= 1 to 20 do
write(a[k,j]);
 
k:=1;
i:=0;
repeat
i:=i+1;
if (a[k,j]='M')and(a[i,j]='M') then
begin
begin
j:=16;
  while (a[k,j]=a[i,j]) and (j<=19) do
  j:=j+1;
   if (j<=19)and (a[k,j]<a[i,j]) then
   k:=i;
end;
{writeln('s  ', k );}
for j:=1 to 20 do
end;
until i>9;
writeln;
for j:= 1 to 20 do
write(a[k,j]);
 
close(output)
end.
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
03.10.2013, 00:49
Помогаю со студенческими работами здесь

Сравнение данных полей по нескольким символам - как?
нужно сравнить данные двух таблиц, причем в одной все достаточно формально и неизменно, а во...

Цикл по символам строки
Есть непустая строковая переменная x, хочу перебрать ее посимвольно в цикле. Умеет ли VBA как в...

Вывод строки по символам
Привет всем форумчанам! Пишу программу для шифрования текста кодом Цезаря. Столкнулся с такой...

Как считывать строки по символам ?
Всем привет, это опять я) :) Мне нужно узнать как считывать строку, по символу. То есть, если у...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2022, CyberForum.ru