Загрузка данных


Вот полный код для всех пяти задач из вашей практической работы. Код написан на языке Pascal ABC.

Я внес небольшие правки в некоторые задачи (например, в задачу 3 и 4), чтобы они работали корректно и полностью выполняли поставленные условия, так как в исходных распечатках были неполные моменты или недочеты.

Задача 1. Подсчитать, сколько раз встречается буква "а"

```pascal
program kolbukv_a;
uses crt;
var
  s: string;
  i, k: integer;
begin
  write('Введите строку: ');
  readln(s);
  k := 0;
  for i := 1 to length(s) do
    if s[i] = 'а' then k := k + 1; // Внимание: в задаче буква русская 'а'
  writeln('Буква "а" встречается ', k, ' раз(а)');
end.
```

Задача 2. Вывести слово в обратном порядке

```pascal
program slovaoborot;
uses crt;
var
  s: string;
  i: integer;
begin
  write('Введите слово: ');
  readln(s);
  for i := length(s) downto 1 do
    write(s[i]);
end.
```

Задача 3. Замена "а" на "б" и подсчет слов на "а"

Примечание: В исходном тексте задачи сказано "Подсчитать, сколько слов в тексте начинается на букву «а»", но в приведенном коде на картинке этого нет. Я добавил эту логику, чтобы задача была выполнена полностью.

```pascal
program zamena_ab;
uses crt;
var
  s: string;
  i, k: integer;
begin
  write('Введите строку: ');
  readln(s);
  
  // Замена "а" на "б"
  for i := 1 to length(s) do
    if s[i] = 'а' then s[i] := 'б';
    
  writeln('Строка после замены: ', s);
  
  // Подсчет слов, начинающихся на "а" (до замены!)
  // Для этого нужно было бы сохранить исходную строку, либо считать до замены.
  // Считаем до замены в отдельном проходе или сохраняем копию. 
  // Сделаем это до замены для корректности:
end.
```

Исправленный полный код задачи 3:

```pascal
program zamena_ab;
uses crt;
var
  s: string;
  i, k: integer;
begin
  write('Введите строку: ');
  readln(s);
  
  k := 0;
  // Подсчет слов, начинающихся на "а"
  for i := 1 to length(s) do
    if (s[i] = 'а') and ((i = 1) or (s[i-1] = ' ')) then
      k := k + 1;
      
  writeln('Слов, начинающихся на "а": ', k);
  
  // Замена "а" на "б"
  for i := 1 to length(s) do
    if s[i] = 'а' then s[i] := 'б';
    
  writeln('Строка после замены: ', s);
end.
```

Задача 4. Повторить каждый символ дважды

Примечание: В исходном коде на картинке не была задана длина строки ns через SetLength, что могло вызвать ошибку. Я добавил это.

```pascal
program udvsimv;
uses crt;
var
  s, ns: string;
  i, j, l: integer;
begin
  write('Введите строку: ');
  readln(s);
  l := length(s);
  SetLength(ns, 2 * l); // Выделяем память под новую строку
  j := 1;
  for i := 1 to l do
  begin
    ns[j] := s[i];
    ns[j+1] := s[i];
    j := j + 2;
  end;
  writeln('Результат: ', ns);
end.
```

Альтернативный, более простой вариант для задачи 4 (через конкатенацию строк):

```pascal
program udvsimv_simple;
uses crt;
var
  s, ns: string;
  i: integer;
begin
  write('Введите строку: ');
  readln(s);
  ns := '';
  for i := 1 to length(s) do
    ns := ns + s[i] + s[i];
  writeln('Результат: ', ns);
end.
```

Задача 5. Проверить, является ли слово палиндромом

Примечание: Код собран из двух частей (вторая часть была на третьем фото).

```pascal
program palindrom;
uses crt;
var
  s: string;
  i, l, m, k: integer;
begin
  write('Введите слово: ');
  readln(s);
  l := length(s);
  m := l div 2;
  k := 0;
  
  for i := 1 to m do
    if s[i] <> s[l+1-i] then k := 1;
    
  if k = 1 then
    writeln('Слово "', s, '" не палиндром')
  else
    writeln('Слово "', s, '" палиндром');
end.
```