Форум программистов, компьютерный форум, киберфорум
Turbo Pascal
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.83/6: Рейтинг темы: голосов - 6, средняя оценка - 4.83
1 / 1 / 2
Регистрация: 09.01.2016
Сообщений: 44
1

Сформировать одномерный массив, каждый элемент которого равен латинской букве

09.01.2016, 00:52. Показов 1077. Ответов 6
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Дана неквадратная матрица строк. Сформировать одномерный массив, каждый элемент которого равен латинской букве, которая наиболее часто используется при записи элементов соответствующей строки. (помогите написать прогу, где описывается последнее условие)
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
09.01.2016, 00:52
Ответы с готовыми решениями:

Сформировать одномерный массив, каждый элемент которого равен наибольшему по модулю элементу
А) Сформировать одномерный массив, каждый элемент которого равен наибольшему по модулю элементу...

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

Сформировать одномерный массив, каждый элемент которого равен максимальному элементу соответствующего столбца
Сформировать одномерный массив, каждый элемент которого равен максимальному элементы...

Двумерный массив. Сформировать одномерный массив каждый элемент которого равен первому нечетному элементу соответствующей строки
Здравствуйте. Выручайте ;) Сформировать одномерный массив каждый элемент которого равен первому...

6
Модератор
Эксперт Pascal/DelphiЭксперт NIX
7794 / 4617 / 2830
Регистрация: 22.11.2013
Сообщений: 13,112
Записей в блоге: 1
09.01.2016, 02:27 2
Лучший ответ Сообщение было отмечено Памирыч как решение

Решение

Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
const m=3; n=2;
var
  a: array [1..m,1..n] of String[31];
  b: array [1..m] of Char;
  c: array ['A'..'Z'] of Integer;
  i, j, k: Integer;
  d, mx: Char;
begin
  for i:=1 to m do begin
    FillChar(c,SizeOf(c),#0);
    for j:=1 to n do begin
      Write('a[',i,',',j,']: '); ReadLn(a[i,j]);
      for k:=1 to Length(a[i,j]) do
        if a[i,j][k] in ['A'..'Z','a'..'z'] then
          Inc(c[UpCase(a[i,j][k])]);
    end;
    mx:='A'; for d:='B' to 'Z' do if c[mx]<c[d] then mx:=d;
    b[i]:=mx; WriteLn('Строка ',i,': ',b[i]);
  end;
end.
Добавлено через 4 минуты
При такой постановке можно было и вовсе без массивов обойтись:
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
const m=3; n=2;
var
  a: String[31];
  c: array ['A'..'Z'] of Integer;
  i, j, k: Integer;
  d, mx: Char;
begin
  for i:=1 to m do begin
    FillChar(c,SizeOf(c),#0);
    for j:=1 to n do begin
      Write('a[',i,',',j,']: '); ReadLn(a);
      for k:=1 to Length(a) do
        if a[k] in ['A'..'Z','a'..'z'] then
          Inc(c[UpCase(a[k])]);
    end;
    mx:='A'; for d:='B' to 'Z' do if c[mx]<c[d] then mx:=d;
    WriteLn('Строка ',i:2,': ',mx);
  end;
end.
Добавлено через 3 минуты
И даже вывести несколько букв при равенстве количества вхождений:
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
const m=3; n=2;
var
  a: String[31];
  c: array ['A'..'Z'] of Integer;
  i, j, k: Integer;
  d, mx: Char;
begin
  for i:=1 to m do begin
    FillChar(c,SizeOf(c),#0);
    for j:=1 to n do begin
      Write('a[',i,',',j,']: '); ReadLn(a);
      for k:=1 to Length(a) do
        if a[k] in ['A'..'Z','a'..'z'] then
          Inc(c[UpCase(a[k])]);
    end;
    mx:='A'; for d:='B' to 'Z' do if c[mx]<c[d] then mx:=d;
    Write('Строка ',i:2,':');
    for d:=mx to 'Z' do if c[d]=c[mx] then Write(' ',d); WriteLn;
  end;
end.
1
1 / 1 / 2
Регистрация: 09.01.2016
Сообщений: 44
09.01.2016, 11:09  [ТС] 3
спасибо, но если не сложно могли бы в прокомментировать все с 11 строчки.
0
Модератор
Эксперт Pascal/DelphiЭксперт NIX
7794 / 4617 / 2830
Регистрация: 22.11.2013
Сообщений: 13,112
Записей в блоге: 1
09.01.2016, 11:24 4
Для каждой строки массива
.обнуляем счетчик вхождения латиницы (массив c)

..Для каждого строкового элемента строки массива
...выдаем подсказку, вводим элемент
...считаем количество латиницы в нем побуквенно

.В c ищем максимум, его индекс -- искомый частый символ
.Присваиваем найденное I-му элементу формируемого массива, выводим.

Добавлено через 6 минут
Проверку на латиницу можно переписать так:
Pascal
14
15
        if UpCase(a[i,j][k]) in ['A'..'Z'] then
          Inc(c[UpCase(a[i,j][k])]);
0
1 / 1 / 2
Регистрация: 09.01.2016
Сообщений: 44
09.01.2016, 22:20  [ТС] 5
ааааа, понял! спасибо

Добавлено через 7 часов 36 минут
если я так напишу, то ничего же не изменится?


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
const m=3; n=2;
var a:array[1..m,1..n] of string;
    b:array['a'..'z'] of integer;
    c:array[1..m]of char;
    l,bmax:char;
    i,j,t,max:integer;
 
BEGIN
max:=0;
writeln('a[',i,',',j,']: ');
for i:=1 to m do
  begin
  for j:=1 to n do
    begin
    readln(a[i,j]);
    for t:=1 to length(a[i,j]) do
      if a[i,j][t] in ['a'..'z'] then b[a[i,j][t]]:=b[a[i,j][t]]+1;
    end;
  for l:='a' to 'z' do
    begin
    if b[l]> max then begin max:=b[l]; bmax:=l; end;
    b[l]:=0;
    end;
  c[i]:=bmax;
  max:=0;
  end;
writeln;
for i:=1 to m do write(c[i],' ');
END.
0
Модератор
Эксперт Pascal/DelphiЭксперт NIX
7794 / 4617 / 2830
Регистрация: 22.11.2013
Сообщений: 13,112
Записей в блоге: 1
09.01.2016, 23:39 6
ктм,
пользуйтесь тегом PASCAL, невозможно же читать...

Зачем выводить "a[0,0]: " перед вводом в цикле?
Max достаточно обнулять во внешнем цикле по строке перед использованием.
0
1 / 1 / 2
Регистрация: 09.01.2016
Сообщений: 44
09.01.2016, 23:44  [ТС] 7
хорошо, я вас понял. Еще раз спасибо
0
09.01.2016, 23:44
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
09.01.2016, 23:44
Помогаю со студенческими работами здесь

Сформировать одномерный массив, каждый элемент которого равен произведению четных положительных элементов соответствующего столбца
решите пожалуйста 1) Дан двумерный массив с размерность 5*6, заполненный целыми числами с...

Сформировать массив каждый элемент которого равен соответствующему элементу исходного массива деленный на минимальный элемент
1-я задача: В массиве q из 15вещественных чисел в пределах от -4 до 6 найти наибольший элемент и...

Создать одномерный массив, каждый элемент которого равен заданному номеру столбца матрицы
составьте программу, генерирующую одномерный массив, каждый элемент которого равен номеру столбца...

Сформировать массив, каждый элемент которого равен сумме элементов в соответствующих столбцах
2. дан двумерный массив n*m элементы введены с клав. сформировать линейный массив В каждый элемент...


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

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru