HOME ПРИМЕРЫ THANKS НОВИЧКАМ ДОКИ LINKS JavaScript Mail


 
 

Уголок начинающего программиста

 Вступление  Массивы  Условный оператор  Файлы  Формулы  Циклы  Процедуры  Множества  Строки
В данном разделе приводятся программы, написанные посетителями данного сайта. Идея данного раздела принадлежит Валерию из города Новотроицк Оренбургской области, который прислал мне письмо, в котором предложил публиковать его программы, мотивировав это тем, что на сайте не хватает простых, элементарных программ. А поскольку он все-равно будет "мучаться", то чтоб труд не пропадал зря, он предложил размещать его примеры на сайте. Мне эта идея понравилась и вот первая партия программ размещена в данном новом разделе. Я постараюсь снабжать программы комментариями, если что-то можно сделать в программах лучше. Я не обещаю проверять данные программы на работоспособность, компилируя их, но просматривать на предмет ошибок обязательно буду.

Модератор.


Задач в выбранных темах: 66

 
  1. Написать программу поиска максимального элемента и его индексов в одномерном массие.
  2. Напишите программу поиска максимального и минимального элементов одномерного массива и их индексов.
  3. Напишите программу поиска максимального элемента одномерного массива и его индекса. Массив сформировать как константу.
  4. Требуется упорядочить массив T(20) по невозрастанию.
  5. Требуется найти первый положительный элемнт массива F(30). Использовать оператор while.
  6. Требуется найти первый положительный элемнт массива F(30). Не использовать оператор while.
  7. Требуется поменять местами k и n строки массива L(10,20) где k и n задаются с терминала.
  8. Создать список жильцов дома.

    1. Описать и вывестимассив, содержащий 10 записей следующий структуры: фамилия, внесенная кварплата(руб), номер счета, номер квартиры.
    2. Вывестимассив в табличном виде.
    3. Вывести список жильцов, фамилии которых начинаются на заданную букву.
    4. Найти общую сумму внесенной платы.

  9. Составить программу вычисления суммы положительных элементов одномерного массива a[n] вещественных чисел.
  10. Составьте прог-му вычисления суммы индексов нулевых элементов одномерного массива a[n] вещественных чисел.
  11. Составьте прог-му подсчета числа отрицательных элементов одномерного массива a[n] вещественных чисел.
  12. Составьте прог-му подсчета числа элементов одномерного массива, превосходящих среднее арифметическое элементов данного массива.
  13. Cоставить прог-му, заменяющую единицей все нулевые элементы массива a[n] вещественных чисел.
  14. Составить прог-му, проверяющую, есть ли среди элементов массива a[n] те, которые принадлежат интервалу (c,d).
  15. Составить программу циклической перестановки элементов одномерного массива a[n], при которой i-ый элеент становится i+1-м, а последний элемент становится первым.
  16. Составить прог-му построения массива b[n], состоящего из тех же элементов, что и массив a[n], но в котором все отрицательные элементы предшествуют всем положительным.
  17. Составить прог-му генерирования массива b[1..m], состоящего только из отрицательных элементов одномерного массива a[n] вещественных чисел.
  18. Найти самую длинную последовательность из одинаковых чисел в массиве.
  19. При вводе возраста от 0 до 99 программа должна подобрать нужное слово: лет, года или год. Пример: 21 год, 11 лет, 2 года и т.д.
  20. Найти большее из четырех введенных чисел
  21. Составить программу которая по названию месяца определяет сезон времени года.
  22. Составить программу для определения четности ли нечетности заданного числа.
  23. Составить программу для определения четности ли нечетности заданного числа. В случае не четности числа выводить его знак.
  24. По введенному с клавиатуры виду транспорта (маршрутное такси - 5 руб., трамвай - 2 руб, автобус - 3 руб, такси - 40руб) определить стоимость проезда для указанного колличесва людей в одном транспорте.
  25. Ревизия: По введенному с клавиатуры виду транспорта (маршрутное такси - 5 руб., трамвай - 2 руб, автобус - 3 руб, такси - 40руб) определить стоимость проезда для указанного колличесва людей в одном транспорте.
  26. По введенным координатам точки установить её местоположение на координатной плоскости. Задачка на условный оператор if-else.
  27. Сколько чисел, оканчивающихся на 0 есть в промежутке от a до b
  28. Дан текстовый файл. Найти в файле все лова длиннее пяти букв. Результат записать в другой текстовый файл.
  29. Условие: Дан текстовый файл. Найти в файле слова, начинающиеся и заканчивающиеся на "а".
  30. Дан текстовый файл. Найти в файле все слова-палиндромы.
  31. Cоздать текстовый фаqл. Заполнить его введенным с клавиатуры числом строк, и
    дописать файл самы длинной строкой, вывести на экран измененный файл.

  32. Формульный счет. Найти и напечатать числа.
  33. Формульный счет. Найти и напечатать числа.
  34. Напечатать сумму, сумму модулей, модуль суммы, разность, разность модулей, произведение двух чисел.
  35. Протабулировать функцию y = sin(x) на отрезке [a b] с шагом h. При вводе не подходящих чисел возвращаться к вводу чисел.
  36. Протабулировать функцию y = sin(x) на отрезке [a b] с шагом h. Использовать цикл while При вводе не подходящих чисел возвращаться к вводу чисел.
  37. Составьте программу вычисления значения функции y = f на отрезке [a,b] в точках Xi = a + i*h, где h = (b-a)/m, где m заданное целое число. Найти среднееарефметическое значение y на отрезке [a, b]. Y=tg(x/2)+cos(x), A=0, B=pi/2, m=20.
  38. По введенной дате в формате ДД ММ ГГГГ определить день недели.
  39. Ввести число и четные цмфры этого числа уменьшить вдвое.
  40. получить и напечатать последовательность натуральных чисел, образованную по следующему правилу: каждое число в последовательности, начиная с третьего, получается сложением двух предыдущих чисел.(напр.1+2=3+2=5+3=8+5=13)
  41. Вывести каждое третье число в промежтке от ста до одного.
  42. Составить программу нахождения наибольшего общего делителя двух чисел М и Р, пользуясь алгоритмом Евклида
  43. Составьте программу в которой при помощи функции находится max(2x,3x-10, max(x2-x,x3-x2-3x), max(a-x, x-a)) при заданных с терминал х и а.
  44. Составьте программу в которой при помощи функции находится максимальный элемент массивов А(22), Р(12), Т(33), затем общий максимальный элемент, затем при помощи процедуры все отрицательные элементы каждого из трех массивов замените на модуль первого элемента соответствующего массива для массивов А(22), Р(12), Т(33). Предусмотреть вывод на экран исходных и измененных массивов.
  45. В матрице А(4,8) определить с помощью функции разность между максимальным и минимальным элементом каждой строки и записать в дополнительный столбец в основной программе. Предусмотреть вывод начального массива и массива после дозаписи.
  46. Создать файл из 5 чисел разного знака. Подсчитать сумму
    положительных чисел. Дописать созданный файл этой суммой.

  47. Сформировать множество А и В, базовый тип которых 0..50, по заданному числу элементов для каждого множества. Найти число и сумму элементов, принадлежащих одновеменно и А и В. Выведите на экран все элементы множества А Не пренадлежащие В.
  48. Дана строка в виде предложения, причем известно что слова отделены друг от друга пробелами. Предложение заканчивается точкой. Сформировать массив состоящий из слов исходного предложения. Вывести слова предложения колличесво букв в которых четно. Посчитать сколько слов начинается с буквы 'T'
  49. Пусть в массиве F хранятся фамилии 25 студентов группы а в массиве A - их адреса(начиная с названия улици и заканчивая номером квартиры или номером дома). Вывести всех проживающих на проспекте ленина.
  50. В произвольном тексте A: string определить, какие цифры встречаются вывести их.
  51. СТРОКИ: Напишите программу подсчета суммарного числа бука "а" и "б" в данной строковой переменной. Вывести на экран каких букв больше.
  52. СТРОКИ: Задано предложение Y, состоящее из слов-строк. Проверить, встречается
    ли данное слово X в предложении Y.

  53. СТРОКИ: Дано предложение-строка. Подсчитать количество слов, начинающихся с буквы "а".
  54. Написать прог-му, подсчитывающую, сколько раз в данном слове X встречается (в качестве его части) слово Y.
  55. Написать прог-му, которая каждый встречающийся в строке заданный символ заменяет на заданную последовательность символов, расширяя при этом строку.
  56. Строки: Задано предложение-строка. Написать прог-му, которая находит самое длинное и самое короткое слово, встречающееся в предложении.
  57. Строки: Написать прог-му, вычеркивающую из данного текста все буквы "а".
  58. Строки: Написать прог-му, которая проверяет в строке баланс открывающих и закрывающих круглых скобок (строка содержит арифмет. выражение)
  59. Строки: Написать прог-му, которая каждую встреченную букву "б" заменяет сочетанием "ку".
  60. Строки: Предложение состоит из слов-строк. НАписать прог-му, которая подсчитывает кол-во слов в предложении.
  61. Из данного предложения вычеркнуть слова, встречающиеся больше одного раза.
  62. Написать прогу, проверяющую, является ли частью данного слова слово "сок". Ответ дать в формате "да/нет".
  63. Дано слово. Определить, сколько различных букв в нем.
  64. В строке заменить все двоеточия точкой запятой и подсчитать количество замен.
  65. Дана строка содержащая текст, заканчивается точкой. Вывести на экран слова содержащие три буквы.
  66. Bычислить сколько pаз каждое слово встpечается во введенной стpоке.

Страница 15


  1.  Условие задачи

    Строки: Написать прог-му, вычеркивающую из данного текста все буквы "а".
Решение
Автор: strike

uses crt;
var s,s1:string;
    i:integer;
begin
clrscr;
write('Input string: ');readln(s);
while copy (s,1,1)=' ' do delete (s,1,1);
while copy (s,length(s),1)=' 'do delete (s,length(s),1);
while pos('  ',s)<>0 do delete (s,pos(' ',s),1);
s:=s+' ';
s1:='';
for i:=1 to length(s) do
   if copy(s,i,1)<>'a' then s1:=s1+copy(s,i,1);
s:=s1;
write('Changed string is: ',s);
readln;
end.

Комментарии

1. Здесь не надо разбивать текст на слова, посему четыре строки после readln(s) лишние.
2. Выражение copy(s,i,1) можно записывать как s[i].
3. С учетом этого программа выродится в

uses crt;
var s,s1:string;
    i:integer;
begin
clrscr;
write('Input string: ');readln(s);
s1:='';
for i:=1 to length(s) do
   if s[i]<>'a' then s1:=s1+s[i];
write('Changed string is: ',s1);
readln;
end.

4. С моей точки зрения более эффективным будет код:

uses crt;
var s,s1:string;
    i:integer;
begin
clrscr;
write('Input string: ');readln(s);
i:=pos('a',s);
while (i>0) do
   begin
   Delete(s,i,1);
   i:=pos('a',s);
   end;
write('Changed string is: ',s);
readln;
end.




to top

  1.  Условие задачи

    Строки: Написать прог-му, которая проверяет в строке баланс открывающих и закрывающих круглых скобок (строка содержит арифмет. выражение)
Решение
Автор: strike

uses crt;
var s:string;
    i,j,k:integer;
begin
i:=0;j:=0;k:=0;
clrscr;
write('Input string: ');readln(s);
for i:=1 to length(s) do begin
                          if s[i]=')' then j:=j+1;
                          if s[i]='(' then k:=k+1;
                          end;
if j>k then write('")" is more in string');
if k>j then write('"(" is more in string');
if j=k then write('Balance is not broken');
readln
end.

Комментарии

1. ОК, ОК. Задача решена верно. Единственное (это не входит в задание, просто как дополнение) было бы здорово, если бы программа еще проверяла правильность следования скобок, исключая варианты вроде "3)-(3". На самом деле сдалать это совсем несложно:

...
var balance:integer;
...
balance:=0;
for i:=1 to length(s) do
  begin
  if s[i]=')' then Dec(balance);
  if s[i]='(' then Inc(balance);
  if (balance<0)
    begin
    writeln('Balance is broken. ) is before (.');halt(1);
    end;
  end;
if (balance>0)
  writeln('Balance is broken. ) more than (');
end.



to top

  1.  Условие задачи

    Строки: Написать прог-му, которая каждую встреченную букву "б" заменяет сочетанием "ку".
Решение
Автор: strike

uses crt;
var s,s1,s2:string;
    i,k:integer;
    c:char;
begin
clrscr;
write('Input original string: ');readln(s);
for i:=1 to length(s)+1 do begin
                          if copy(s,i,1)='a' then
                                             begin
                                             delete(s,i,1);
                                             insert('ku',s,i);
                                             end;
                          end;
write('Modified string: ',s);
readln;
end.

Комментарии

1. Программа является на самом деле частным случаем задачи "Написать прог-му, которая каждый встречающийся в строке заданный символ заменяет на заданную последовательность символов, расширяя при этом строку", которая была рассмотрена выше.
2. Автор прислал исправленный вариант с учетом предыдущих замечаний, и предложил более простой выход из положения в ответ на комментарии 3. и 4., а именно: использовать "обратный" цикл:
for i:=length(s) downto 1 do
В этом случае указанные замечания снимаются.


to top

  1.  Условие задачи

    Строки: Предложение состоит из слов-строк. НАписать прог-му, которая подсчитывает кол-во слов в предложении.
Решение
Автор: strike

uses crt;
var s:string;
    i,j:integer;
begin
clrscr;
write('Input phrase: ');readln(s);
while copy (s,1,1)=' ' do delete (s,1,1);
while copy (s,length(s),1)=' 'do delete (s,length(s),1);
while pos('  ',s)<>0 do delete (s,pos(' ',s),1);
s:=s+' ';
for i:=1 to length(s) do if s[i]=' ' then j:=j+1;
write('There are ',j,' words in the phrase');
readln
end.

Комментарии

1. Удаление лишних пробелов см. комментарии к задаче "Дано предложение-строка. Подсчитать количество слов, начинающихся с буквы 'а'" выше.
2. Переменной j не присваивается никакого начального значения. Надо перед циклом j:=0;
3. Присваивать s:=s+' ' только для того, чтобы посчитать еще один пробел? Проще просто увеличить j на единицу.

to top

Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17

 

 

 

Задач в выбранных темах: 66

 
  1. Написать программу поиска максимального элемента и его индексов в одномерном массие.
  2. Напишите программу поиска максимального и минимального элементов одномерного массива и их индексов.
  3. Напишите программу поиска максимального элемента одномерного массива и его индекса. Массив сформировать как константу.
  4. Требуется упорядочить массив T(20) по невозрастанию.
  5. Требуется найти первый положительный элемнт массива F(30). Использовать оператор while.
  6. Требуется найти первый положительный элемнт массива F(30). Не использовать оператор while.
  7. Требуется поменять местами k и n строки массива L(10,20) где k и n задаются с терминала.
  8. Создать список жильцов дома.

    1. Описать и вывестимассив, содержащий 10 записей следующий структуры: фамилия, внесенная кварплата(руб), номер счета, номер квартиры.
    2. Вывестимассив в табличном виде.
    3. Вывести список жильцов, фамилии которых начинаются на заданную букву.
    4. Найти общую сумму внесенной платы.

  9. Составить программу вычисления суммы положительных элементов одномерного массива a[n] вещественных чисел.
  10. Составьте прог-му вычисления суммы индексов нулевых элементов одномерного массива a[n] вещественных чисел.
  11. Составьте прог-му подсчета числа отрицательных элементов одномерного массива a[n] вещественных чисел.
  12. Составьте прог-му подсчета числа элементов одномерного массива, превосходящих среднее арифметическое элементов данного массива.
  13. Cоставить прог-му, заменяющую единицей все нулевые элементы массива a[n] вещественных чисел.
  14. Составить прог-му, проверяющую, есть ли среди элементов массива a[n] те, которые принадлежат интервалу (c,d).
  15. Составить программу циклической перестановки элементов одномерного массива a[n], при которой i-ый элеент становится i+1-м, а последний элемент становится первым.
  16. Составить прог-му построения массива b[n], состоящего из тех же элементов, что и массив a[n], но в котором все отрицательные элементы предшествуют всем положительным.
  17. Составить прог-му генерирования массива b[1..m], состоящего только из отрицательных элементов одномерного массива a[n] вещественных чисел.
  18. Найти самую длинную последовательность из одинаковых чисел в массиве.
  19. При вводе возраста от 0 до 99 программа должна подобрать нужное слово: лет, года или год. Пример: 21 год, 11 лет, 2 года и т.д.
  20. Найти большее из четырех введенных чисел
  21. Составить программу которая по названию месяца определяет сезон времени года.
  22. Составить программу для определения четности ли нечетности заданного числа.
  23. Составить программу для определения четности ли нечетности заданного числа. В случае не четности числа выводить его знак.
  24. По введенному с клавиатуры виду транспорта (маршрутное такси - 5 руб., трамвай - 2 руб, автобус - 3 руб, такси - 40руб) определить стоимость проезда для указанного колличесва людей в одном транспорте.
  25. Ревизия: По введенному с клавиатуры виду транспорта (маршрутное такси - 5 руб., трамвай - 2 руб, автобус - 3 руб, такси - 40руб) определить стоимость проезда для указанного колличесва людей в одном транспорте.
  26. По введенным координатам точки установить её местоположение на координатной плоскости. Задачка на условный оператор if-else.
  27. Сколько чисел, оканчивающихся на 0 есть в промежутке от a до b
  28. Дан текстовый файл. Найти в файле все лова длиннее пяти букв. Результат записать в другой текстовый файл.
  29. Условие: Дан текстовый файл. Найти в файле слова, начинающиеся и заканчивающиеся на "а".
  30. Дан текстовый файл. Найти в файле все слова-палиндромы.
  31. Cоздать текстовый фаqл. Заполнить его введенным с клавиатуры числом строк, и
    дописать файл самы длинной строкой, вывести на экран измененный файл.

  32. Формульный счет. Найти и напечатать числа.
  33. Формульный счет. Найти и напечатать числа.
  34. Напечатать сумму, сумму модулей, модуль суммы, разность, разность модулей, произведение двух чисел.
  35. Протабулировать функцию y = sin(x) на отрезке [a b] с шагом h. При вводе не подходящих чисел возвращаться к вводу чисел.
  36. Протабулировать функцию y = sin(x) на отрезке [a b] с шагом h. Использовать цикл while При вводе не подходящих чисел возвращаться к вводу чисел.
  37. Составьте программу вычисления значения функции y = f на отрезке [a,b] в точках Xi = a + i*h, где h = (b-a)/m, где m заданное целое число. Найти среднееарефметическое значение y на отрезке [a, b]. Y=tg(x/2)+cos(x), A=0, B=pi/2, m=20.
  38. По введенной дате в формате ДД ММ ГГГГ определить день недели.
  39. Ввести число и четные цмфры этого числа уменьшить вдвое.
  40. получить и напечатать последовательность натуральных чисел, образованную по следующему правилу: каждое число в последовательности, начиная с третьего, получается сложением двух предыдущих чисел.(напр.1+2=3+2=5+3=8+5=13)
  41. Вывести каждое третье число в промежтке от ста до одного.
  42. Составить программу нахождения наибольшего общего делителя двух чисел М и Р, пользуясь алгоритмом Евклида
  43. Составьте программу в которой при помощи функции находится max(2x,3x-10, max(x2-x,x3-x2-3x), max(a-x, x-a)) при заданных с терминал х и а.
  44. Составьте программу в которой при помощи функции находится максимальный элемент массивов А(22), Р(12), Т(33), затем общий максимальный элемент, затем при помощи процедуры все отрицательные элементы каждого из трех массивов замените на модуль первого элемента соответствующего массива для массивов А(22), Р(12), Т(33). Предусмотреть вывод на экран исходных и измененных массивов.
  45. В матрице А(4,8) определить с помощью функции разность между максимальным и минимальным элементом каждой строки и записать в дополнительный столбец в основной программе. Предусмотреть вывод начального массива и массива после дозаписи.
  46. Создать файл из 5 чисел разного знака. Подсчитать сумму
    положительных чисел. Дописать созданный файл этой суммой.

  47. Сформировать множество А и В, базовый тип которых 0..50, по заданному числу элементов для каждого множества. Найти число и сумму элементов, принадлежащих одновеменно и А и В. Выведите на экран все элементы множества А Не пренадлежащие В.
  48. Дана строка в виде предложения, причем известно что слова отделены друг от друга пробелами. Предложение заканчивается точкой. Сформировать массив состоящий из слов исходного предложения. Вывести слова предложения колличесво букв в которых четно. Посчитать сколько слов начинается с буквы 'T'
  49. Пусть в массиве F хранятся фамилии 25 студентов группы а в массиве A - их адреса(начиная с названия улици и заканчивая номером квартиры или номером дома). Вывести всех проживающих на проспекте ленина.
  50. В произвольном тексте A: string определить, какие цифры встречаются вывести их.
  51. СТРОКИ: Напишите программу подсчета суммарного числа бука "а" и "б" в данной строковой переменной. Вывести на экран каких букв больше.
  52. СТРОКИ: Задано предложение Y, состоящее из слов-строк. Проверить, встречается
    ли данное слово X в предложении Y.

  53. СТРОКИ: Дано предложение-строка. Подсчитать количество слов, начинающихся с буквы "а".
  54. Написать прог-му, подсчитывающую, сколько раз в данном слове X встречается (в качестве его части) слово Y.
  55. Написать прог-му, которая каждый встречающийся в строке заданный символ заменяет на заданную последовательность символов, расширяя при этом строку.
  56. Строки: Задано предложение-строка. Написать прог-му, которая находит самое длинное и самое короткое слово, встречающееся в предложении.
  57. Строки: Написать прог-му, вычеркивающую из данного текста все буквы "а".
  58. Строки: Написать прог-му, которая проверяет в строке баланс открывающих и закрывающих круглых скобок (строка содержит арифмет. выражение)
  59. Строки: Написать прог-му, которая каждую встреченную букву "б" заменяет сочетанием "ку".
  60. Строки: Предложение состоит из слов-строк. НАписать прог-му, которая подсчитывает кол-во слов в предложении.
  61. Из данного предложения вычеркнуть слова, встречающиеся больше одного раза.
  62. Написать прогу, проверяющую, является ли частью данного слова слово "сок". Ответ дать в формате "да/нет".
  63. Дано слово. Определить, сколько различных букв в нем.
  64. В строке заменить все двоеточия точкой запятой и подсчитать количество замен.
  65. Дана строка содержащая текст, заканчивается точкой. Вывести на экран слова содержащие три буквы.
  66. Bычислить сколько pаз каждое слово встpечается во введенной стpоке.

 

 

 

HOME EXAMPLES