Все технические форумы на одном сайте Удобный поиск информации с популярных форумов в одном месте
Вопрос: Найти номер первого символа слова, содержащего максимальное количество букв «а»

Составить программу для решения предложенной задачи. Дан текст. Слова текста разделены одним или несколькими пробелами. Найти номер первого символа слова, содержащего максимальное количество букв «а».
Ответ:
Код 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
type arr=array[0..127] of string;
var
  s:string;
  i,j:integer;
  a:arr;
procedure split(delimeter:string;s:string;var sr:arr;var count:integer);
var
  i:integer;
  t:string;
procedure additem;
begin
 if (t<>'') then begin
   inc(count);
   sr[count-1]:=t;
 end;
   t:='';
end;
begin
  count:=0;t:='';
  for i:=1 to length(s) do
    if pos(s[i],delimeter)=0 then t:=t+s[i] else additem;
    additem;
end;
function CntLet(c:char;s:string):integer;
var
  k,l:integer;
begin
  l:=0;
  for k:=1 to length(s) do if s[k]=c then l:=l+1;
  CntLet:=l;
end;
begin
    write('введите текст:');readln(s);
    split(' ',s,a,i);
    if i=0 then writeln('Нет слов') else begin
      j:=0;
      for i:=1 to i-1 do if CntLet('a',a[i])>CntLet('a',a[j]) then j:=i;
      if CntLet('a',a[j])=0 then writeln('Нет слов, содержащих букву "a"')
      else writeln('номер первого символа слова, содержащего максимальное количество букв "a":',pos(a[j],s));
    end;
end.
Вопрос: Вывести первое слово, содержащее максимальное количество букв

дано предложение которое заканчивается точкой. Слова предложения разделены между собой только одним пробелом.Вывести первое слово, содержащее максимальное количество букв
Ответ:
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
using System;
using System.Linq;
 
internal sealed class Program {
  static void Main() {
    String s = @"Некое предложение, в котором \
             нужно найти самое длинное слово.";
    Console.WriteLine(
      s.Split(new [] {' ', ',', '.'})
       .OrderByDescending(w => w.Length)
       .First()
    );
  }
}
Вопрос: Найти слово, содержащее наибольшее количество букв "а"

дана строка,содержащая текст на русском языке и буква "а". Найти слово, содержащее наибольшее количество указа
откликнувшемуся,огромное спасибо)
Ответ:
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
begin
  var readStr := ReadLnString('Введите строку на русском языке:');
  var findLiter := 'а'; var resultWord : String := ''; var countLiter := 0;
  var d := (' .,!?:;''"/=<>{}[]()-+*').ToCharArray;
  foreach var word in readStr.ToWords(d) do
    if word.Count(liter -> liter = findLiter) > countLiter then
      begin
        resultWord := word;
        countLiter := word.Count(liter -> liter = findLiter);
      end;
  if countLiter = 0 then
    WriteLn('Нет слов содержащих букву «' + findLiter + '»')
  else
    WriteLn('Слово содержащее наибольшее количество букв «' + findLiter + '» : ' + resultWord);
end.
Вопрос: Строки: найти слово с максимальным количеством букв "а"

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

Это код на нахождение и удаление слова с максимальным количеством букв а
ASM
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
include "emu8086.inc"
data segment
    mas db 30 dup(?),32
    smes4 dw ?
    adress dw ?
    razmernost dw 31
    pkey db "Programma zavershena. Nazmite klavishy."
ends
 
stack segment
    dw   128  dup(0)
ends
 
code segment
start:
; set segment registers:
    mov ax, data
    mov ds, ax
    mov es, ax
    
    call pthis
    Db  'Vvedite stroky: ', 0
    
    mov di,offset mas
    mov dx,30
    call GET_STRING 
    
    mov cx,razmernost
    mov si,offset mas
    mov di,si
    xor dx,dx
    xor bx,bx
    
 l1:lodsb
    cmp al,97
    jne l2
    inc dx
 l2:cmp al,32  
    jne l4
    cmp dx,bx
    jle l3
    mov bx,dx
    mov adress,di
    mov smes4,si
    sub smes4,di
 l3:mov di,si
    xor dx,dx
 l4:loop l1   
    
 
    
dec adress
 
 
mov di,offset mas
add di,adress
mov si,di
add si,smes4
mov cx,razmernost
sub cx,adress
sub cx,smes4
cld
rep movsb
 
mov si,razmernost
sub si,smes4
sub si,2
mov mas[si],0  
 
 
call   pthis
Db  13, 10, 'Stroka posle ydaleniya slova s max kolichestvom a:  ', 0 
mov si,offset mas
call PRINT_STRING   
 
   
    mov ah, 1
    int 21h
    
    mov ax, 4c00h ; exit to operating system.
    int 21h    
ends   
DEFINE_PRINT_STRING
DEFINE_GET_STRING
DEFINE_PTHIS
end start ; set entry point and stop the assembler.





Это вроде как код на нахождение слов перевертышей

ASM
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
push ebx;          // сохраняю регистры
  push esi;
  push edi;
  mov edi, eax;      // edi - начало строки
  xor eax, eax;      // Result := False
  test edi,edi;      // проверка на пустую строку
  je @exit;
  mov esi,[edi - 4]; // esi - длина строки
  mov ecx,esi;
  shr ecx,1;         // Вычисляю количество итераций
  test ecx, ecx; 
  je @exit;          // выхожу если счетчик цикла = 0
@loop:
  mov edx, edi;
  sub edx, ecx;             // [edi+esi-ecx]
  mov bl, byte [edx+esi];   // загружаю байт справа
  cmp bl, byte [edi+ecx-1]; // сравниваю с байтом слева
  jnz @exit;         // Выхожу из цикла если они не равны
  dec ecx;           // Уменьшаю счетчик
  jnz @loop;         // При нулевом счетчике выход из цикла
  mov eax, True;     // Result := True
@exit:
  pop edi;           // восстанавливаю регистры
  pop esi;
  pop ebx;
помогите пожалуйста соединить эти 2 кода, основное задание гласит-найти в тексте слова перевертыши и удалить их
Ответ:
Сообщение от Hayama
не знаю, как переделать, помогите пожалуйста
Переделывать - дело не благодарное. Проще написАть заново..
Нужно вычислить длину слова, и сравнивать первый с последним символом.., второй с пред/последним и т.д. Если символы совпадают - в топку это слово!
Вопрос: Вывести слова, содержащие максимальное количество различных букв

Даны предложения. Вывести слова, содержащие максимальное количество раз*личных букв.
Ответ:

Не по теме:

Сообщение от MrGluck
oO оно даже скопилировалось с первого раза, хотя набирал с нуля
Вам всё равно никто не поверит.

Вопрос: Слова, содержащие максимальное количество заданных символов

Подскажите,как удалить символы [.,!?]
Код Java(TM) 2 Platform Standard Edition 5.0
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
package labs;
 
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.IOException;
import java.lang.String;
 
public class lab2 {
    public static void main (String[] args) throws IOException {
        BufferedReader in = new BufferedReader( new InputStreamReader(System.in));
 
        System.out.println("Введите текст длинной от 2 до 100 слов:");
        String text = in.readLine();
        text.replaceAll(",", "").length();
        text.replaceAll(".", "").length();
        text.replaceAll("-", "").length();
        text.replaceAll(";", "").length();
        text.replaceAll("!", "").length();
        //text.replaceAll("?", "").length();
        String[] textFormat = text.split(" ");
 
 
        String simbol;
        System.out.println("Введите символ:");
        while (true) {
            simbol = in.readLine();
            if (simbol.length() == 1)
                break;
            System.out.println("Введите ОДИН символ ");
        }
 
        int max = 0,
        numWord = 0;
        int [] count = new int[textFormat.length];
        for(String word: textFormat) {
            int counter = 0;
            for(int i = 0; i < word.length(); i++) {
                if(word.substring(i,i+1).equals(simbol))
                    counter++;
            }
            count[numWord++] = counter;
            if(max < counter)
                max = counter;
        }
 
        System.out.println("/n" + "Слова, содержащие максимальное количество заданных символов:");
        for(int i = 0; i < textFormat.length; i++) {
            if(max == count[i])
                System.out.println(textFormat[i]);
 
 
 
 
 
 
 
 
 
        }
 
    }
Ответ:
Код Java(TM) 2 Platform Standard Edition 5.0
1
replaceAll("(\\p{Punct})","")
Добавлено через 3 минуты
убирает все знаки припенания

Добавлено через 47 секунд
Код Java(TM) 2 Platform Standard Edition 5.0
1
2
str = str.replaceAll("(\\p{Punct})",""); //убираем знаки припинания;
String[] all = str.split("\\s"); //делим строку на массив слов по пробелу;
Вопрос: Найти номер строки, в которой находится максимальное количество минимальных элементов строки

Найти номер строки, в которой находится максимальное количество минимальных элементов строки

Код 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
const nmax=20;
var a:array[1..nmax,1..nmax] of integer;
    m,n,i,j,mn,k,imx,mx:integer;
begin
randomize;
repeat
write('Количество строк от 2 до ',nmax,' m=');
readln(m);
until m in [2..nmax];
repeat
write('Количество столбцов от 2 до ',nmax,' n=');
readln(n);
until n in [2..nmax];
writeln('Исходная матрица:');
for i:=1 to m do
 begin
  for j:=1 to n do
   begin
    a[i,j]:=random(4);
    write(a[i,j]:3);
   end;
  writeln;
 end;
mx:=0;
for i:=1 to m do
 begin
  mn:=a[1,i];
  k:=1;
  for j:=2 to n do
  if a[i,j]=mn then inc(k)
  else if a[i,j]<mn then
   begin
    mn:=a[i,j];
    k:=1;
   end;
  writeln('В строке ',i,' мин=',mn,' количество=',k);
  if k>mx then
   begin
    mx:=k;
    imx:=i
   end;
 end;
writeln('Максимальное количество минимальных=',mx,' в строке ',imx);
end.
Ответ:
Код Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
mx:=0;
for i:=1 to m do
 begin
  mn:=a[i,1];//минимальный пока первый в строке
  for j:=2 to n do
  if a[i,j]<mn then mn:=a[i,j];//нашли минимальный в строке
  k:=0;
  for j:=1 to n do
  if a[i,j]=mn then inc(k); //посчитали минимальные
  writeln('В строке ',i,' мин=',mn,' количество=',k);
  if k>mx then
   begin
    mx:=k;
    imx:=i
   end;
 end;
Вопрос: Даны предложения. Вывести слова, содержащие максимальное количество различных букв

Создать текстовый файл, содержащий строки в стиле C++. В новый файл записать результаты выполнения следующих действий:

Даны предложения. Вывести слова, содержащие максимальное количество различных букв.
Ответ: toypypp, вот программа. У меня все работает. Отпишитесь, пожалуйста, как у вас

C++
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
#include <iostream>
#include <string>
#include <algorithm>
#include <vector>
#include <fstream>
 
using namespace std;
 
int DifNum(string s)
{
int k, p;
int l = s.length();
sort(s.begin(), s.end());
k = p = 0;
for (int i = p; i < l; i++)
{
if (s[i] == s[i+1]) 
{
k++;
}
else p = k;
}
return l - k;
}
 
int main()
{   setlocale(LC_ALL, "Russian");
    ifstream fin("input.txt"); 
    ofstream fout("output.txt");
    vector<std::string> x;  
    string a, b;
    int max;
    max = 0;
    while (getline(fin, a))
    {
    a = a + ' ';
    for (int i = 0; i < a.length(); i++)
    {
    b += a[i]; 
    if ((!(isalpha(a[i])))) 
    {
    b.pop_back();
    if (b != "")
    {
    if (DifNum(b) > max) max = DifNum(b); 
    x.push_back(b);
    }
    b = "";
    }
    }
    }
    fout << "FOUND WORDS:" << endl;
    int p = 1;
    for (int i = 0; i < x.size(); i++)
    {
    if (DifNum(x[i]) == max)
    {
    fout << p << ": " << x[i] << endl; 
    p++;
    }
    }
    fin.close();
    fout.close();
    system("pause"); 
    return 0;   
}
Вопрос: Найти номер первого столбца, не содержащего ни одного элемента кратного 2.

Найти номер первого столбца, не содержащего ни одного элемента кратного 2.

Добавлено через 3 часа 30 минут
Дана действительная матрица размерности (n × n ).
Найти номер первого столбца, не содержащего ни одного элемента кратного 2.
Ответ: Большое спасибо!
Вопрос: В массиве строк найти все слова, содержащие заданное количество гласных букв

Добрый вечер!
Прошу пожалуйста помочь/подсказать
В программе нужно ввести количество строк(но не больше 6)
Максимальное число символов в строке: 80
задание: в массиве строк найти все слова, содержащие заданное количество гласных букв
Не пойму, что, а точнее как дальше это сделать
программу нужно писать без использования указателей

C
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
#include<stdio.h>
#include<conio.h>
main()
{
    int m,x,i,y,j,count=0;
    metka:
    printf("vvedite kolichestvo strok:");
    scanf("%d",&x);
    if(x>6)
    {
    printf("\nError\n");
    goto metka; 
    }
    char Str[x][80];
    printf("\nZapolnite stroki:"); 
    for(i=0; i<=x; i++)
     fgets( Str[i], 80, stdin );
     printf("vy vveli:");
    for(i=1; i<=x; i++)
     printf( "Stroka %d\n %s",i, Str[i] );
     const char glas[] = "AEIOUYaeiouy";
     for( y=0; y<=x; y++)
      for(i=0; Str[y][i]!='\0'; i++)
  {
     for(j=0; glas[j]!='\0'; j++)       
    if(Str[y][i]==glas[j])
       count++; 
       
  printf("vsego glashykh %d",count);
     getch();
      }
Ответ: string.h посмотрите. Там есть функция strpbrk()


Добавлено через 15 минут
в массиве строк найти все слова, содержащие заданное количество гласных букв
Найти все гласные или найти слова с заданными гласными буквами

Добавлено через 4 минуты
C
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
#include<stdio.h>
#include<conio.h>
 
int main()
{
    int x, i, y, j, count = 0;
 
    char Str[6][80];
    const char glas[] = "AEIOUYaeiouy";
 
    printf("vvedite kolichestvo strok:");
    scanf("%d", &x);
 
    printf("\nZapolnite stroki:");
 
    for (i = 0; i <= x; i++)
        fgets(Str[i], 80, stdin);
 
    printf("vy vveli:");
 
    for (i = 1; i <= x; i++)
        printf("Stroka %d\n %s", i, Str[i]);
 
 
    for (y = 0; y <= x; y++){
        for (i = 0; Str[y][i] != '\0'; i++)
        {
            for (j = 0; glas[j] != '\0'; j++){
                if (Str[y][i] == glas[j])
                    count++;}
        }
    }
            printf("vsego glashykh %d", count);
            getch();
 
}
Добавлено через 23 секунды
найдите отличия

Добавлено через 42 секунды
И на будущее. Семантика обязательна должна присутствовать при написании кода.