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


 
В этот день много лет назад...
1 мая. В 1921 году (96 лет назад) - Открывается первая почтово-пассажирская авиалиния Москва-Орел-Харьков на самолетах Илья Муромец.
 
 

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

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

Модератор.


Задач в выбранных темах: 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оке.

Страница 13


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

    Пусть в массиве F хранятся фамилии 25 студентов группы а в массиве A - их адреса(начиная с названия улици и заканчивая номером квартиры или номером дома). Вывести всех проживающих на проспекте ленина.
Решение

program lab4zad6;
uses crt;
const lin='--------------';
type Fs = string;
var F, A: array[1..5] of Fs;
    i:byte; s: string[15]; j,k:integer;
BEGIN
clrscr;
for i:= 1 to 5 do
Begin
  Writeln('введите фамилию'); readln(F[i]);
  writeln('введите адрес'); readln(A[i]);
  writeln(lin);
  end;
  Writeln('укажите интересующий вас адрес'); readln(s);
  Writeln('жильцы проживающие по указанному адресу =->');
  for i:= 1 to 5 do
    begin if s <= copy(A[i],1,18) then
          writeln (F[i]:6)
               end;
    readln;
     end.

Комментарии

1. Для меня загадка, почему такое странное условие на проверку проживания по указанному адресу. Может, для какого-нибудь набора данных это и будет работать, но бузусловно не для любого. Указанное условие должно быть таковым:
if (Pos(s,A[i])>0) then
То есть если подстрока s содержащая искомый адрес встречается в строке A[i], то данный человек проживает по указанному адресу

to top

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

    В произвольном тексте A: string определить, какие цифры встречаются вывести их.
Решение

program zifra;
uses crt;
Type xx = set of '0'..'9';
var S:char; a:string; DI: XX; n,i: byte;
begin
clrscr;
writeln('введите текст');
readln(A);
DI :=[]; n:= length(a);
for i:=1 to n do
if a[i] in['0'..'9']then DI:=DI+[A[i]];
if DI=[] then writeln(' в тексте цифр нет')
else writeln('в тексте следующие цифры');
for s:= '0' to '9' do
if s in DI then write(s:3);
readln
end.

Комментарии

Все правильно. Но более эффективно пользоваться встроенными функциями:
for s:='0' to '9' do
  if (Pos(s,A)>0) then
     write(s:3);

to top

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

    СТРОКИ: Напишите программу подсчета суммарного числа бука "а" и "б" в данной строковой переменной. Вывести на экран каких букв больше.
Решение
Автор: strike

uses crt;
var s:string;
    s1,s2:char;
    i,k,w,t:integer;
begin
i:=0;k:=0;w:=0;t:=0;
clrscr;
write ('Input string: ');readln(s);
write ('Input first symbol: ');readln(s1);
write ('Input second symbol: ');readln(s2);
for i:=1 to length(s) do begin
                         if s[i]=s1 then k:=k+1;
                         if s[i]=s2 then w:=w+1;
                         end;
t:=k+w;
if t<>0 then Write('Summary of two symbols is: ',t)
else write ('There are no neseccary symbols in the string');
readln
end.

Комментарии

Все правильно. Ошибок нет.
Нет необходимости присваивать i:=0 поскольку i используется как индексная переменная в цикле. Не выведено, каких букв больше:

if (k>w)
  then writeln('Char "',s1,'" meets in line more often than char ',s2,'"')
  else writeln('Char "',s2,'" meets in line more often than char ',s1,'"');

Может быть более эффективно чем простым перебором было бы воспользоваться встроенными функциями:
Pos() и Delete() - то есть сначала находим символ, потом удаляем его из строки и т.д., пока символ есть в строке.

to top

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

    СТРОКИ: Задано предложение Y, состоящее из слов-строк. Проверить, встречается
    ли данное слово X в предложении Y.
Решение
Автор: strike

uses crt;
var s,s1,s2:string;
    i,t,r:integer;
begin
clrscr;
write('Input string: ');readln(s);
write('Input word: ');readln(s1);
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);
while copy (s1,1,1)=' ' do delete (s1,1,1);
while copy (s1,length(s1),1)=' 'do delete (s1,length(s1),1);
while pos('  ',s1)<>0 do delete (s1,pos(' ',s1),1);
s:=s+' ';
repeat
t:=pos(' ',s);
s2:=copy(s,1,t-1);
if s2=s1 then r:=1;
delete(s,1,t);
until length(s)=0;
if r=1 then write('The word is in the string')
  else write('There is no such word in the string');
readln
end.


Комментарии

1. Выражение copy (s,1,1) эквивалентро s[1], что короче и, скорей всего, быстрее.
2. Know-How: если в разделе описания переменных описать переменную:
k: byte absolute s;
то данная переменная всегда будет выдавать длину строки, что бы вы со строкой не делали.
3. В данном алгоритме можно добавить в условие окончания цикла r=1:
until (length(s)=0) and (r=1);
посему как если слово уже найдено, то не зачем просматривать строку дальше.
4. Поскольку в условии не оговорено обратное, можно выло воспользоваться изначально функцией Pos() для поиска слова в предложении:

if (Pos(' '+s1+' ',s)>0)
  then write('The word is in the string')
  else write('There is no such word in the string');

Результат работы этого оператора будет тем же, что и приведенной программы.

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