Форум программистов, компьютерный форум, киберфорум
Pascal (Паскаль)
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
0 / 0 / 1
Регистрация: 21.03.2015
Сообщений: 126

Прокомментировать код

24.03.2015, 10:54. Показов 431. Ответов 1
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте. Большая просьба, разъясните пожалуйста 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
function FindMin(const x, y: Integer): Integer;
var
  Res: Integer;
begin
  if (y < x)
    then
    Result := y
  else
    Result := x;
  FindMin := Result;
end;
 
var
  a: Array[1..100] Of Integer;
  b: Array[1..50] Of Integer;
  n, i: Byte;
 
begin
  repeat
    Write('n=');
    ReadLn(n);
  until (n <= 100);
  for i := 1 to n do
  begin
    Write('a[', i, ']=');
    ReadLn(a[i]);
  end;
  WriteLn;
  for i := 1 to n div 2 do
  begin
    b[i] := FindMin(a[i * 2], a[i * 2 + 1]);
    Write(b[i]:4);
  end;
  if Odd(n)
  then
  begin
    b[(n div 2) + 1] := a[n];
    Write(b[(n div 2) + 1]:4);
  end;
  ReadLn;
end.
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
const
  n_max = 100;
 
var
  a, b: array [1..n_max] of integer;
  n, j, i, max: integer;
 
begin
  write('Введите размерность массива: '); readln(n);
  j := 0;
  for i := 1 to n do
  begin
    readln(a[i]);
    if a[i] < 0 then
    begin
      inc(j);
      b[j] := a[i];
    end;
  end;
  n := j; max := b[1];
  for i := 1 to n do
  begin
    write(b[i]:4);
    if b[i] > max then
      max := b[i];
  end;
  writeln;
  writeln('Max: ', max);
  readln;
end.
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
var
  s: string;
  n, i, k: byte;
 
begin
  writeln('Введите строку из русских слов, разделенных пробелами');
  readln(s);
  s := ' ' + s;
  n := length(s);
  k := 0;
  for i := 2 to n do
    if(s [i] = 'а') and (s[i - 1] = ' ') then k := k + 1;
  write('Количество слов на букву а=', k);
end.
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
24.03.2015, 10:54
Ответы с готовыми решениями:

Прокомментировать код
объясните хотя бы самые сложные строчки в данной части программы Procedure Vvod(x,y:integer;max:integer;mode:string;var...

Прокомментировать код
program decision5_2; {Название программы} uses crt; ...

Прокомментировать код
1)начиная с while not eof(t) do и до конца условия program v4; var s:string; t:text; b:char; k,i:integer; begin ...

1
CAPITAL OF ROCK!
 Аватар для JokeR.BY
1281 / 708 / 982
Регистрация: 03.03.2010
Сообщений: 2,286
24.03.2015, 12:29
с вашего позволения я немного подправил текст программ
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
var
    s: String;
    i, k: Byte;
begin
    Write('Введите строку из русских слов, разделенных пробелами: ');ReadLn(s); //вводим строку
    s := ' ' + s; //добавляем в начало строки пробел (чтобы можно было i-1 далее использовать)
    k := 0; //инициализируем счётчик
    for i := 2 to Length(s) do //по всей длине строки
        if (s[i] = 'а') and (s[i - 1] = ' ') //проверяем является ли текущий символ буквой 'а' и является ли она началом слова (пробел перед ней)
        then
            Inc(k); //наращиваем счётчик слов на букву 'а'
    Write('Количество слов на букву а=', k); //выводим
end.
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
const
    n_max = 100;
 
var
    a, b: Array [1..n_max] Of Integer;
    na, nb, i, maxID : Byte;
 
begin
    repeat
        Write('Введите размерность массива: ');
        ReadLn(na); //читаем размерность начального массива
    until (na > 0) And (na <= n_max);
    nb := 0; //инициализируем количество элементов в фильтрованном массиве
    for i := 1 to na do //пробегаемся по каждому элементу начального массива
    begin
        ReadLn(a[i]); //считываем его
        if (a[i] < 0) //если введён отрицательный
        then
        begin
            Inc(nb); //увеличиваем количество в фильтрованном
            b[nb] := a[i]; //записываем из исходного в фильтрованный
        end;
    end;
    if (nb > 0) //если в фильтрованном что-нибудь вообще есть
    then
    begin
        maxID := 1; //первый примем за максимальный (оперируем номерами, а не самим значением)
        for i := 1 to nb do //пробегаемся по массиву
        begin
            Write(b[i]:4); //выводим элемент на экран
            if (b[i] > b[maxID]) //если текущий проверяемый больше нашего максимума
            then
                maxID := i; //перезаписываем номер нового максимума
        end;
        WriteLn;
        WriteLn('Max: ', b[maxID]); //выводим максимум
    end
    else
        WriteLn('Массив пуст');
    ReadLn;
end.
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
function FindMin(const x, y: Integer): Integer; //функция нахождения минимума из двух чисел
begin
    if (y < x) //если y меньше x
    then
        Result := y //результатом функции будет y
    else //иначе
        Result := x; //-|-|- x
    FindMin := Result; //возвращаем значение
end;
 
var
  a: Array[1..100] Of Integer;
  b: Array[1..50] Of Integer;
  n, i: Byte;
 
begin
    repeat
        Write('n=');
        ReadLn(n);
    until (n <= 100); //считываем значение n пока не будет удовлетворять условию
    for i := 1 to n do //считываем последовательно элементы массива
    begin
        Write('a[', i, ']=');
        ReadLn(a[i]);
    end;
    WriteLn;
    for i := 1 to n div 2 do //от 1 до половины размера массива (числа сравниваются по двое)
    begin
        b[i] := FindMin(a[i * 2], a[i * 2 + 1]); //в новый массив пишем минимум из двух последующих чисел
        Write(b[i]:4); //выводим
    end;
    if Odd(n) //если количество элементов в массиве нечётное
    then
    begin
        b[(n div 2) + 1] := a[n]; //пишем в конец массива b последний (сравнивать его не с чем)
        Write(b[(n div 2) + 1]:4); //и выводим
    end;
    ReadLn;
end.

Не по теме:

это не я писал часом?

1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
24.03.2015, 12:29
Помогаю со студенческими работами здесь

Прокомментировать код
Здравствуйте. Друзья, разъясните пожалуйста чайнику каждый цикл и оператор в задачах, в них встречается совершенно непонятный код, опишите...

Прокомментировать код
Объясните пожалуйста подробнее операторы и циклы в 2 задачах, в них много непонятного кода и действий с кодом. 1 задача : const ...

Прокомментировать код
var s:string; x:real; sumk,kint,k,code:integer; f:text; begin assign(f,'111.txt'); reset(f); while not eof(f)...

Прокомментировать код
условие: На вход программы подаются сведения о результатах соревнований по школьному многоборью. Многоборье состоит из соревнований...

Прокомментировать код
Объясните как работает эта программа Program Lab7_2; const n=10; type vektor=arrayof integer; procedure sort(var s:vektor;var...


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

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Новые блоги и статьи
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма). На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
Первый деплой
lagorue 16.01.2026
Не спеша развернул своё 1ое приложение в kubernetes. А дальше мне интересно создать 1фронтэнд приложения и 2 бэкэнд приложения развернуть 2 деплоя в кубере получится 2 сервиса и что-бы они. . .
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ * Дана цепь постоянного тока с R, L, C, k(ключ), U, E, J. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа, решает её и находит: токи, напряжения и их 1 и 2 производные при t = 0;. . .
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым. Но восстановить их можно так. Для этого понадобится консольная утилита. . .
Изучаю kubernetes
lagorue 13.01.2026
А пригодятся-ли мне знания kubernetes в России?
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru