Форум программистов, компьютерный форум, киберфорум
Pascal (Паскаль)
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.68/28: Рейтинг темы: голосов - 28, средняя оценка - 4.68
0 / 0 / 0
Регистрация: 20.10.2008
Сообщений: 6
1

Вычислить количество заглавных латинских букв, входящих в заданную строку символов

20.10.2008, 00:08. Показов 5635. Ответов 16
Метки нет (Все метки)

Мужики помогите плз решить парачку задач......вся надежда на вас :'(

1) Даны натуральное число , целочисленная квадратная матрица порядка . Найти номера строк:
а) все элементы которых нули;
б) элементы каждой из которых одинаковы;
в) все элементы которых четны;

2) В условиях предыдущей задачи найти максимум среди всех локальных минимумов заданной матрицы размером 10x12.

3) Вычислить количество заглавных латинских букв, входящих в заданную строку символов.

В заранее спасибо)
__________________
Помощь в написании контрольных, курсовых и дипломных работ здесь
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
20.10.2008, 00:08
Ответы с готовыми решениями:

Множества. Из множества латинских букв выделить множество символов, не входящих в ваше имя
из множества латинских букв выделить множество состоящее из символов не входящих в множество...

В последовательности символов, заканчивающейся /, подсчитать количество цифр и прописных латинских букв.
Помогите пожалуйста В последовательности символов, заканчивающейся /, подсчитать количество цифр...

Вычислить количество букв латинского алфавита, входящих в последовательность
Написать программу на языке Pascal: дана последовательность, состоящая из n символов. Вычислить...

Найти и вывести в самом длинном слове все символы, отличные от заглавных латинских букв
Решить задачу с помощью паскаль

16
3066 / 726 / 69
Регистрация: 24.09.2008
Сообщений: 1,531
20.10.2008, 01:56 2
Вот ваша 1-ая (а):
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
Program maccub;
uses
 crt;
var
 a:array[1..100,1..100] of real;
 n,i,j,k,d:integer;
begin
 clrscr;
 Writeln('BBedUTe nop9DoK matpuL/bl');
 readln(n);
 For i:=1 to n do
 begin
  for j:=1 to n do
  begin
   Write('a[' ,i, ',' ,j, ']=');
   readln(a[i,j]);
  end;
 end;
 i:=1;
 d:=0;
 while i<=n+1 do
 begin
  if k=n then
   inc(d);
  j:=1;
  k:=0;
  while j<=n do
  begin
   if a[i,j]=0 then
    begin
     inc(k);
     j:=j+1;
    end
   else
    j:=j+1;
  end;
  inc(i);
 end;
 Writeln('KoLu4eCTBo ctpok=  ' ,d);
 readkey;
end.
Добавлено через 28 минут 25 секунд
вот 1-ая (б):
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
Program maccub;
uses
 crt;
var
 a:array[1..100,1..100] of real;
 n,i,j,k,d:integer;
begin
 clrscr;
 Writeln('BBedUTe nop9DoK matpuL/bl');
 readln(n);
 For i:=1 to n do
 begin
  for j:=1 to n do
  begin
   Write('a[' ,i, ',' ,j, ']=');
   readln(a[i,j]);
  end;
 end;
 i:=1;
 d:=0;
 while i<=n+1 do
 begin
  if k=n-1 then
   inc(d);
  j:=1;
  k:=0;
  while j<n do
  begin
   if a[i,j]=a[i,j+1] then
    begin
     inc(k);
     j:=j+1;
    end
   else
    j:=n+1;
  end;
 inc(i);
 end;
 Writeln('KoLu4eCTBo ctpok=  ' ,d);
 readkey;
end.
Добавлено через 1 минуту 21 секунду
Вот 1-ая (в):
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
Program maccub;
uses
 crt;
var
 a:array[1..100,1..100] of integer;
 n,i,j,k,d:integer;
begin
 clrscr;
 Writeln('BBedUTe nop9DoK matpuL/bl');
 readln(n);
 For i:=1 to n do
 begin
  for j:=1 to n do
  begin
   Write('a[' ,i, ',' ,j, ']=');
   readln(a[i,j]);
  end;
 end;
 i:=1;
 d:=0;
 while i<=n+1 do
 begin
  if k=n-1 then
   inc(d);
  j:=1;
  k:=0;
  while j<n do
  begin
   if a[i,j] mod 2=0 then
    begin
     inc(k);
     j:=j+1;
    end
   else
    j:=n+1;
  end;
 inc(i);
 end;
 Writeln('KoLu4eCTBo ctpok=  ' ,d);
 readkey;
end.
Добавлено через 2 минуты 28 секунд
По 2-ому заданию есть вопрос, т.е. у нас матрица определена 10Х12 или мы просто рассматриваем кусочек 10Х12?Просто сказано
В условиях предыдущей задачи
а в условии задачи 1 сказано
квадратная матрица порядка
т.е. задаётся пользователем, так что уточните.

Добавлено через 28 минут 22 секунды
Ну вот твоя 3-я:
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
Program xa;
uses
 crt;
var
 a:string;
 i,s,c:integer;
begin
 clrscr;
 writeln('BBeDute ctpoky');
 readln(a);
 for i:=1 to length(a) do
  if a[i] in ['A'..'Z'] then
   inc(s);
 Writeln('KoLU4ecTBo =' ,s);
 readkey;
end.
1
257 / 173 / 27
Регистрация: 17.10.2008
Сообщений: 770
20.10.2008, 02:19 3
3) Вычислить количество заглавных латинских букв, входящих в заданную строку символов.

В заранее спасибо)
Вот и ответик по 3 части:Но ТОЛЬКо ДЛЯ ЛАТИНСКИХ!!!

Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
uses
  SysUtils;
 
var 
     i,j,k:integer;
        s:string;
begin
        Writeln('Vvedi stroku:');
        Read(s);
        k:=0;
          for i:=1 to Length(s)do
          for j:=65 to 90 do
             if s[i]=Chr(j) then
              k:=k+1;
        Writeln(k);
        Readln;
        Readln;
end.
1
3066 / 726 / 69
Регистрация: 24.09.2008
Сообщений: 1,531
20.10.2008, 02:21 4
Какой-то вы выбрали сложный метод, аж 2 массива...
1
0 / 0 / 0
Регистрация: 20.10.2008
Сообщений: 6
20.10.2008, 16:13  [ТС] 5
Спс большое ребята...вы меня спасли..)......
А на счет

В условиях предыдущей задачи найти максимум среди всех локальных минимумов заданной матрицы размером 10x12.

Помойму матрица определена.....)


И если не затруднит еще 3 последние задачки с остальными постараюсь сам справится..)


1) Даны действительные числа A1, A2.....A 2n Получить: A n+1,....,A 2n,A n,A n-1,...,A1.

2) Даны натуральное число n , целые числа A1, .....,A25, B1, ..., Bn, среди которых нет повторяющихся.
Получить все числа, которые входят в последовательность по одному разу.

3) Даны целые числа A1,....A30 . Пусть M наибольшее, а m наименьшее из A1,....A30 . Получить в порядке возрастания все целые из интервала ( m,M ), которые не входят в последовательность A1,....A30.
0
257 / 173 / 27
Регистрация: 17.10.2008
Сообщений: 770
20.10.2008, 22:00 6
Цитата Сообщение от lexus_ilia Посмотреть сообщение
Какой-то вы выбрали сложный метод, аж 2 массива...
Есть конечно идейка и с кейсом, но некрасиво это, предложи свою идейку, интересно же!!!
1
3066 / 726 / 69
Регистрация: 24.09.2008
Сообщений: 1,531
21.10.2008, 00:05 7
Мой метод описан мною в ответе ранее
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
Program xa;
uses
 crt;
var
 a:string;
 i,s,c:integer;
begin
 clrscr;
 writeln('BBeDute ctpoky');
 readln(a);
 for i:=1 to length(a) do
  if a[i] in ['A'..'Z'] then
   inc(s);
 Writeln('KoLU4ecTBo =' ,s);
 readkey;
end.
а зачем тут Case?
По моему методу вводим строку, пробегаем по всем буквочкам, проверяем на принадлежность к Латинским Заглавным и всё, а у вас проверка каждой буквы происходит 65 to 90 {90-65=25 раз, по-моему это лишние проверки}
Так что мне кажется мой способ более оптимален.
З.Ы. Я конечно не полностью уверен, т.к. не программер, но мне кажется мой метод быстрее и оптимальнее, дошёл до какоё-то буквы и перешёл на следующую...
1
257 / 173 / 27
Регистрация: 17.10.2008
Сообщений: 770
21.10.2008, 01:10 8
3) Даны целые числа A1,....A30 . Пусть M наибольшее, а m наименьшее из A1,....A30 . Получить в порядке возрастания все целые из интервала ( m,M ), которые не входят в последовательность A1,....A30.
Вот ответик на 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
uses
  SysUtils;
 
var       a:array[1..30] of integer;
    min,max:integer;
      i,j:integer;
begin
   Writeln('VVedi a[i]:');
   for i:=1 to 30 do
     Read(a[i]);
 
   min:=a[1];
   for i:=1 to 30 do
     begin
        if min>a[i] then
          min:=a[i];
     end;
 
   max:=a[1];
   for i:=1 to 30 do
     begin
        if max<a[i+1] then
          max:=a[i+1];
     end;
   Writeln(min,' ',max);
   Writeln;
   ReadLn;
   for i:=min to max do
     begin
        j:=0;
        while j<>30+1 do
           begin
              j:=j+1;
              if a[j]=i then
                j:=30+1
              else
                if j=30 then
                  begin
                     Writeln(i);
                     Read;
                  end;
           end;
     end;
Readln;
end.
Конечно определение максимума и минимума можно определить и в одном цикле for,
но так я думаю нагляднее выглядит.Но дело твоё...

Добавлено через 3 минуты 32 секунды
да кстати ещё и можно использовать randomize, чтобы генерировать 30 чисел. а то вводить ужасно.

пишешь так:
randomize;
...
for i:=1 to 30 do
a[i]:= random(100{тут любое число});
...

Добавлено через 12 минут 22 секунды
Мой метод описан мною в ответе ранее
З.Ы. Я конечно не полностью уверен, т.к. не программер, но мне кажется мой метод быстрее и оптимальнее, дошёл до какоё-то буквы и перешёл на следующую...
Я согласен с тобой, могу и свой переделать под тебя, просто даже и думать не хотелось, я то больше в дельфи шарю, а паскаль так, но спасибо за замечание:
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
uses
  SysUtils;
 
var 
     i,j,k:integer;
        s:string;
begin
        Writeln('Vvedi stroku:');
        Read(s);
        k:=0;
        j:=64;
          for i:=1 to Length(s)do
          repeat 
              j:=j+1;
             if s[i]=Chr(j) then
               begin
                    j=90;
                    k:=k+1;
               end;
          until j=90; 
        Writeln(k);
        Readln;
        Readln;
end.
1
3066 / 726 / 69
Регистрация: 24.09.2008
Сообщений: 1,531
21.10.2008, 01:13 9
ну как бы так тебе сказать
Код
                    j=90;
Напишет ошибку при компиляции и смысла в этой строке нет
1
257 / 173 / 27
Регистрация: 17.10.2008
Сообщений: 770
21.10.2008, 01:26 10
Цитата Сообщение от lexus_ilia Посмотреть сообщение
ну как бы так тебе сказать
Код
                    j=90;
Напишет ошибку при компиляции и смысла в этой строке нет
Тьфу точно, не компилил, не доглядел нужно j:=90;
дело в том, что как вы говорили что цикл велик, я тем самым его и обрубаю, до длинны вашего цикла, единственное что я использую 2 внешних цикла, а вы внешний и внутренний. Вот и всего.
Удачки...
1
0 / 0 / 0
Регистрация: 20.10.2008
Сообщений: 6
21.10.2008, 13:40  [ТС] 11
Arriba,
Спс за 3 задачку..).....
на счет задачи со строками подешел первый вариант который предложил lexus_ilia, .....)
можете еще помочь 1 2 решить...и я перестану вас мучить....(в хорошом смысле)..))
еще раз спасибо...выручили)
0
257 / 173 / 27
Регистрация: 17.10.2008
Сообщений: 770
21.10.2008, 21:18 12
Цитата Сообщение от Zimbaba Посмотреть сообщение
и я перестану вас мучить....(в хорошом смысле)..))
еще раз спасибо...выручили)
Хи потом мы тебя мучить будем, ты то как думал.А если честно если будеш заниматься делфаком, скоро и сам поймёшь, что нужна практическая наработка.
Если не секрет,эт задачки в универе каком то?А вторую уже решаю...
1
3066 / 726 / 69
Регистрация: 24.09.2008
Сообщений: 1,531
21.10.2008, 21:27 13
почему-ты решил что в универе, у меня в колледже не хуже задачи...

Добавлено через 7 минут 40 секунд
Вот твоя 1-ая, как я понял условие:
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
Program xa;
Var
 a:array[1..300] of integer;
 i,n:integer;
begin
 Writeln('BBedute KoLu4ectBo L/ufr (n)');
 Readln(n);
 Writeln('BBedute Camu L/uFPbl');
 for i:=1 to 2*n do
 begin
  Write('a[' ,i, ']=');
  Readln(a[i]);
 end;
 for i:=n+1 to 2*n do
  Write('  a[' ,i, ']=' ,a[i]:3);
 for i:=n downto 1 do
  Write('  a[' ,i, ']=' ,a[i]:3);
 readln;
end.
1
0 / 0 / 0
Регистрация: 20.10.2008
Сообщений: 6
21.10.2008, 21:32  [ТС] 14
Да ты прав это универ..)....я сам стараюсь все решать но на мне гора математики + это программирование...все что могу сам делаю а что нет прошу помочь..)..
Зы даже в школах такие задачки иногдда задают)
0
257 / 173 / 27
Регистрация: 17.10.2008
Сообщений: 770
21.10.2008, 22:59 15
почему-ты решил что в универе, у меня в колледже не хуже задачи...
Да я сам студент, правда физик, а программирование хобби...
А понял я потому, что у нас такие же задачки давали, всмысли так же сформулированы криво...

Добавлено через 1 час 7 минут 44 секунды
Вот решение второй задачки:
(Дано натуральное число n, целые числа А1..А25, В1..Вn среди них нет повторяющихся,как я понял не повторяются цифры в массиве A, и не повторяются в массиве B, надо получить последовательность чисел из массива С=А+В,которые входят 1 раз)

Если такое условие, то вот решение, иначе подскажи с интерпритацией задачи.

Delphi
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
program Project2;
 
{$APPTYPE CONSOLE}
 
uses
  SysUtils;
 
var   i,k,n,s:integer;
            a:array[1..25] of integer;
            b:array[1..100000] of integer;
begin
 Writeln('vvedi n:');
 Read(n);
 writeln('vvedi a(1..25):');
   for i:=1 to 25 do
     Read(a[i]);
 Writeln('vvedi b:');
   for i:=1 to n do
     Read(b[i]);
Writeln;     
 i:=n;
 k:=0;
   while k<>Length(a) do
      begin
         i:=i+1;
         k:=k+1;
         b[i]:=a[k];
      end;
 k:=0;
   repeat
      k:=k+1;
      s:=0;
      while s<>i+1 do
        begin
          s:=s+1;
           if k=s then
             begin
               if s=i then
               Writeln(b[s]);
             end
           else
             if b[k]=b[s] then
               s:=i+1
             else
               if s=i then
                 begin
                    Writeln(b[k]);
                    read;
                 end;
           end;
   until k=i;
 Readln;
 Readln;
end.
1
0 / 0 / 0
Регистрация: 20.10.2008
Сообщений: 6
04.11.2008, 19:28  [ТС] 16
Ребята у меня пру вопросов возникло

if a[i] in ['A'..'Z'] then
inc(s);

Вот как обясничть эту строчку и что значит inc??

if s[i]=Chr(j) then
k:=k+1;

И вот это не сильно понятно)

В заранее спасибооооооо)))
0
257 / 173 / 27
Регистрация: 17.10.2008
Сообщений: 770
04.11.2008, 20:35 17
1. Если i-тая буква строчки А или массива А, равна одной из заглавных букв(['A'..'Z']-все заглавные буквы) тогда мы inc(s)=incriment(s)=увеличение числа s на единичку.
2.chr(j)--где j-какое-то число(целое и неотрицательное), возращает букву по таблице "кодировки символов".Если взглянешь на таблицу сам поймёшь. Например:chr(99)='c'(малой с).
0
04.11.2008, 20:35
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
04.11.2008, 20:35

можно ли из букв входящих в строку s1 составить строку s2
Написать программу, которая проверяет – можно ли из букв входящих в строку s1 составить строку s2 ,...

Строки (цепочки символов латинских букв)
В8. Строки (цепочки символов латинских букв) создаются по следующему правилу: Первая строка состоит...

Составить программу, которая переведет в число строку заглавных латинских букв, длиной не более 6 символов
Известно что в электронных таблицах excel столбцы обозначаются латинскими заглавными буквами и их...

Определить количество уникальных подстрок из 3 символов, входящих в заданную строку
Прошу знающих людей помочь мне в выполнении этой задачи. P. S. Строка вводится с клавиатуры....


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

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

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