В
Все
М
Математика
А
Английский язык
Х
Химия
Э
Экономика
П
Право
И
Информатика
У
Українська мова
Қ
Қазақ тiлi
О
ОБЖ
Н
Немецкий язык
Б
Беларуская мова
У
Українська література
М
Музыка
П
Психология
А
Алгебра
Л
Литература
Б
Биология
М
МХК
О
Окружающий мир
О
Обществознание
И
История
Г
Геометрия
Ф
Французский язык
Ф
Физика
Д
Другие предметы
Р
Русский язык
Г
География
saida1808
saida1808
15.07.2021 12:39 •  Информатика

Написать программу на языке C++ для решения задачи 2.4.2 из учебника А. Шеня. 2.4.2 Представляя разбиения как невозрастающие последовательности, перечислите их в порядке, обратном лексикографическому. (Для n = 4, например, должно быть 4, 3+1, 2+2, 2+1+1, 1+1+1+1)

Показать ответ
Ответ:
PascalABC.Net

const
//Формат файла
 //Фамилия имя номер    
fl = 'D:\phone.txt';  
var   
t : text;   
c : char;   
Fnm,s : string; 

begin 
assign (t,fl); 
reset (t);   

writeln ('Укажите фамилию'); 
readln (Fnm);  writeln();     

While not eof (t) do   
begin     
s := '';          

//Считываем фамилию
read (t,c);         
While c <> ' ' do       
begin       
s := s + c;       
read (t,c);       
end;

//Если Фамилию нужная то дочитываем            
//иначе переходим к следующему
if s = fnm then     
begin       
write (s+' ');       

While not eoln(t) do         
begin         
read (t,c);         
write (c);         
end;       
readln (t);       
writeln ();     
end 
   
else     
readln (t);        
end; 

close (t); 
end.
0,0(0 оценок)
Ответ:
Маша0070
Маша0070
17.10.2022 23:19
Program primer;
var
  f: text;
  i, j, h: byte;
  l, k: smallint;
  s, s1, s2, m: string;
begin
assign(f, 'F.txt'); {путь к файлу}
  reset(f);
   read(f, s);
  s := ' ' + s + ' ';
  close(f);
  writeln('укажите 2 слова через строчку');
  readln(s1);
  readln(s2);
  i := 0; j := 0; m := s; k := 1;
  while k <> 0 do
   begin
    k := pos(' ' + s1 + ' ', m);
    if (k <> 0) then inc(i);
    delete(m, 1, k + length(s1));
  end;
  k := 1; m := s;
  while k <> 0 do
   begin
    k := pos(' ' + s2 + ' ', m);
    if (k <> 0) then inc(j);
    delete(m, 1, k + length(s2));
  end;
  m := s; k := 1; h:=0;
  while (k <> 0) or (l <> 0) do
   begin 
    k := pos(' ' + s1 + ' ' + s2 + ' ', m);
    l := pos(' ' + s2 + ' ' + s1 + ' ', m);
    if (k <> 0) or (l <> 0) then inc(h);
     delete(m, 1, k + l + length(s2 + s1) + 1);
   end;
 writeln('количество слов соответствующих первому = ', i);
 writeln('количество слов соответствующих второму = ', j);   writeln('непосредственно друг за другом   х', h);
end.
0,0(0 оценок)
Популярные вопросы: Информатика
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota Оформи подписку
logo
Начни делиться знаниями
Вход Регистрация
Что ты хочешь узнать?
Спроси ai-бота