616

Теория и практика использования одномерных массивов. Строки

Конспект

Информатика, кибернетика и программирование

Описать одномерный массив размерностью 10. Заполнить массив случайными значениями из диапазона от 1 до 10. Вывести массив на экран. Вывести массив задом наперед. Отсортировать массив по возрастанию методом пузырька.

Русский

2013-01-06

84.5 KB

9 чел.

Теория и практика использования одномерных массивов.

Общее задание №1: Описать одномерный массив размерностью 10. Заполнить массив случайными значениями из диапазона от 1 до 10. Вывести массив на экран. Вывести массив задом наперед

Код Программы:

program one;

const

 m = 10;

var

 a: array[1..m] of integer;

 i: integer;

begin

 randomize;

 for i := 1 to 10 do                                                           //заполняем  

                                                                                            массив случайными значениями

 begin

   a[i] := random(9) + 1;

   write(a[i]);                                                                   //выводим массив

 end;

 writeln;

 for i := 10 downto 1 do

   write(a[i]);                                                                   //выводим массив задом наперед

end.

Результаты выполнения программы:

 


Общее задание №2: Описать одномерный массив размерностью 8. Заполнить массив случайными значениями из диапазона от 1 до 10. Отсортировать массив по возрастанию методом «пузырька».

Код программы:

program two;

const

 m = 8;

var

 a: array[1..m] of integer;

 i, j, k: integer;

begin

 randomize;

 for i := 1 to 8 do                                                             //заполняем  

                                                                                            массив случайными значениями

 begin

   a[i] := random(9) + 1;                         

   write(a[i]);                                                                    //выводим массив

 end;

 writeln;

 for i := 1 to m - 1 do

   for j := 1 to m - i do

     if a[j] > a[j + 1] then begin                                       //сортируем элементы массива

       k := a[j];

       a[j] := a[j + 1];

       a[j + 1] := k;

     end;

 for i := 1 to m do

   write(a[i]);                                                                    //выводим отсортированный

                                                                                            массив

end.

Результаты выполнения программы:

 


Общее задание №3: Описать одномерный массив размерностью 14. Заполнить массив случайными значениями из диапазона от 5 до 20. Каждый элемент, имеющий четный номер, обнулить. Каждый элемент, имеющий четное значение, увеличить в 2 раза.

Код программы:

program three;

var

 a: array[1..14] of integer;

 i: integer;

begin

 randomize;

 for i := 1 to 14 do                                                           //заполняем  

                                                                                            массив случайными значениями

 begin

   a[i] := random(16) + 5;

   write(a[i], ' ');                                                               //выводим массив

 end;

 writeln;

 for i := 1 to 14 do

 begin

   if i mod 2 = 0 then a[i] := 0;                                       //проверяем четность индексов

   if a[i] mod 2 = 0 then a[i] := a[i] * 2;                        //проверяем четность элементов

   write(a[i], ' ');                                                              //выводим измененный массив

 end;

end.

Результаты выполнения программы:

 


Индивидуальное задание №1: Построчно вывести матрицу 5х5, вторую матрицу заполнить случайными числами <100. Сформировать третью матрицу: каждый ее элемент принимает значение «истина», если элемент первой матрицы больше соответствующего элемента второго, иначе «ложь». Код программы:

program one;

uses crt;

var

a,b,c: array[1..5,1..5] of integer;

i,k: integer;

begin

write('Ввод первой матрицы:');

for i:=1 to 5 do begin

for k:=1 to 5 do begin

write('a[',i,',',k,'] = ');

read(a[i,k]);

end;

end;

writeln('Первая матрица:');

for i:=1 to 5 do begin

for k:=1 to 5 do begin

write(a[i,k]:4);

end;

writeln;

end;

writeln('Вторая матрца:');

for i:=1 to 5 do begin

for k:=1 to 5 do begin

b[i,k]:=random(99);

write(b[i,k]:4);

end;

writeln;

end;

for i:=1 to 5 do begin

for k:=1 to 5 do begin

if a[i,k]>b[i,k] then c[i,k]:=1

else c[i,k]:=0;

end;

end;

writeln('Конечная матрица:');

for i:=1 to 5 do begin

for k:=1 to 5 do begin

write(c[i,k]:4);

end;

writeln;

end;

end.

Результаты выполнения программы:

Индивидуальное задание №2: Случайным образом заполнить матрицу символов 6х6. Сформировать вектор: если в строке матрицы строчных латинских букв больше цифр, то его элемент вектора «истина, иначе «ложь».

Код программы:

Program two;

uses crt;

var a: array [1..6,1..6] of char;

   b: array [1..6] of boolean;

   i,j,r,kz,kb: byte;

   c: char;

 

begin

writeln('Дана матрица');

for i:=1 to 6 do

   begin

   kz:=0; kb:=0;

   for j:=1 to 6 do

       begin

       r:=random(2);                                                 //будет цифра или буква

       if r=0 then c:=chr(random(25)+97) else c:=chr(random(10)+48);

       a[i,j]:=c;

       write(a[i,j],' ');

       if a[i,j] in ['0'..'9'] then inc(kz) else inc(kb);

       end;

   b[i]:=kb>kz;

   writeln;

   end;

writeln('Вектор');

for i:=1 to 6 do

   write(b[i],' ');

end.

Результаты выполнения программы:


Строки.

Общее задание №1: Заполнить и вывести на экран массив из всех латинских букв, как прописных, так и строчных.

Код программы:

program one;

var

 ar: array[1..150] of char;

 i: integer;

begin

 for i := 65 to 90 do                                                                     //заполняем массив

                                                                                                        прописными лат. буквами

 begin

   ar[i] := chr(i);

   write(ar[i], ' ');  

 end;

 writeln;

 for i := 97 to 122 do                                                                  //заполняем массив

                                                                                                        строчными лат. буквами

 begin

   ar[i] := chr(i);

   write(ar[i], ' ');

 end;

 readln;

end.

Результаты выполнения программы:


Общее задание №2: Заполнить и вывести на экран массив из латинских букв и случайных чисел. Определить количество гласных букв, количество согласных и количество цифр.

Код программы:

program two;

var

 l: string;

 i, si, ci, gi: integer;

 g, c, s: set of char;

begin;

 c := ['0'..'9'];                                                                                            //множество

                                                                                                                    цифр                                                             

 g := ['a', 'e', 'i', 'o', 'u', 'y', 'q'];                                                                //множество

                                                                                                                    гласных

 s := ['z', 'x', 'c', 'v', 'b', 'n', 'm', 's', 'd', 'f', 'g', 'h', 'k', 'j', 'l', 'w', 'r', 't', 'p']; // множество

                                                                                                                     согласных

 writeln('vvedite stroku');

 readln(l);

 for i := 1 to length(l) do

 begin

   if l[i] in c then inc(ci);                                                                        //если элемент

                                                                                                                  входит в множество,

                                                                                                                  увеличиваем счетчик

   if l[i] in g then inc(gi);

   if l[i] in s then inc(si);

 end;

 writeln('chislo cifr ', ci);

 writeln('chilso glasnih ', gi);                                                                //выводим результаты

 writeln('chislo soglasnih ', si);

 readln;

end.

Результаты выполнения программы:

 


Общее задание №3: Дана строка из нескольких слов, вводимая пользователем с клавиатуры. Удалить в строке все пробелы.

Код программы:

program three;

var

 a, i: integer;

 str: string;

begin

 writeln(‘vvedite stroku’);                                                              //вводим строку

 readln(str);

 while pos(' ', str ) <> 0 do

   delete(str, pos(' ', str), 1);                                                            //удаляем пробелы в

                                                                                                             строке

 writeln(str);                                                                                     //выводим новую строку

end.

Результаты выполнения программы:

 


Индивидуальное задание №1. Дана строка. Вывести строку, содержащую те же символы, но расположенные в обратном порядке.

Код программы:

Program one;

var

 st: string;

 i,l: byte;

 sub: char;

Begin

 Write('Введите строку: ');

 ReadLn(st);

 l:=length(st);

 For i:=1 to l div 2 do

   Begin

     sub:=st[i];

     st[i]:=st[l-i+1];

     st[l-i+1]:=sub;

   End;

 WriteLn('Новая строка: ',st);

 ReadLn

End.

Результат выполнения программы:


Индивидуальное задание №2: Даны строки S, S1 и S2. Заменить в строке S первое вхождение строки S1 на строку S2.

Код программы:]

program str;

Var

 s,s1,s2: string;

 x: byte;

Begin

 Write('введите строку S: ');

 ReadLn(s);

 Write('введите строку S1: ');

 ReadLn(s1);

 Write('введите строку S2: ');

 ReadLn(s2);

 x:=pos(s1,s);

 Delete(st,x,length(s1));

 Insert(s2,s,x);

 WriteLn('новая строка: ',s);

 ReadLn

End.

Результат выполнения программы:


 

А также другие работы, которые могут Вас заинтересовать

75608. РАЗЛОЖЕНИЕ ФУНКЦИЙ В РЯДЫ 259.5 KB
  Ортонормированный базис Для представления одномерных величин достаточно одного параметра. Возникает вопрос нельзя ли ввести ортонормированную систему в пространство функций так же как она вводится для векторного пространства Иначе говоря нельзя ли ввести множество взаимно перпендикулярных единичных функций Если это возможно то рассматриваемую функцию можно выразить в виде линейной комбинации таких функций. Рассмотрим некоторое множество функций семейство функций. Если число этих функций невелико можно...
75609. МАТЕМАТИЧЕСКОЕ ПРЕДСТАВЛЕНИЕ СИГНАЛА. МЕТОДЫ ИССЛЕДОВАНИЯ ПОДОБИЯ СИГНАЛОВ. КОРРЕЛЯЦИЯ 136 KB
  Элемент из этого числового набора называется компонентом вектора. Это означает что анализ вектора f аналогичен анализу функции непрерывного сигнала ft если она не имеет точек разрыва. Для этого необходимо определить понятия: расстояния между векторами скалярное расстояние норма вектора...
75610. РАЗЛОЖЕНИЕ ФУНКЦИЙ В ДЕЙСТВИТЕЛЬНЫЙ РЯД ФУРЬЕ 282.5 KB
  В последнем соотношении колебание самого большого периода, представленное суммой cost и sint, называют колебанием основной частоты или первой гармоникой. Колебание с периодом, равным половине основного периода, называют второй гармоникой
75611. РАЗЛОЖЕНИЕ ФУНКЦИЙ В КОМПЛЕКСНЫЙ РЯД ФУРЬЕ 60.5 KB
  Это и есть разложение в комплексный ряд Фурье. Коэффициенты Сk называются комплексными коэффициентами Фурье и, подобно действительным коэффициентам Фурье, вычисляются как скалярные произведения
75612. КЛЮЧЕВЫЕ ОПЕРАЦИИ ЦОС 191 KB
  Применяется для вычисления выходного сигнала yt линейной системы по заданному входному xt и известному импульсному отклику ht рис. Линейными называются системы для которых справедлив принцип суперпозиции отклик на сумму входных сигналов равен сумме откликов на эти сигналы по отдельности и принцип однородности изменение амплитуды входного сигнала вызывает пропорциональное изменение амплитуды выходного сигнала. Для реальных систем объектов свойство линейности может выполняться приближенно В системах цифровой обработки...
75613. ПРОГРАММИРОВАНИЕ КЛЮЧЕВЫХ ОПЕРАЦИЙ ЦОС В MATLAB 51.5 KB
  Основные арифметические операции в MATLAB: сложение, вычитание, умножение , деление и возведение в степень. Операции умножения, деления и возведения в степень рассчитаны на работу с матрицами, поэтому при поэлементных операциях они записываются
75614. Цифровая фильтрация 152 KB
  согласованные фильтры; фильтры для борьбы с шумами при нелинейных и нестационарных процессах фильтр ГильбертаХуанга Выбор способа борьбы с шумами должен производится с учетом свойств и особенностей информативного сигнала и помехи. Чем в большей степени свойства сигнала и шума априори известны тем может быть получен больший эффект от цифровой обработки. Кроме того несмотря на обилие стандартных доведенных до уровня готовых программ цифровой обработки с учетом конкретных априори известных свойствах информативного сигнала и шума может...
75615. ОПТИМАЛЬНАЯ И СОГЛАСОВАННАЯ ФИЛЬТРАЦИЯ 170.5 KB
  Оптимальная фильтрация Оптимальное выделение сигнала из шума можно проводить различными методами в зависимости от того какая задача ставится: обнаружение сигнала сохранение формы сигнала и т. В каждом методе оптимальной фильтрации вводится понятие критерия оптимальности согласно которому строится оптимальный алгоритм обработки сигнала. Оптимальный фильтр КолмогороваВинера Фильтры низкой частоты высокой частоты и полосовые фильтры эффективны в том случае когда частотные спектры сигнала и шума не...
75616. ПРИМЕНЕНИЕ ЦОС ДЛЯ ОБРАБОТКИ КОРОТКИХ СИГНАЛОВ. ОКОННАЯ ФИЛЬТРАЦИЯ 233.5 KB
  В том случае если анализируется одночастотный сигнал и он занимает все временное окно массив частотного спектра содержит только один ненулевой элемент номер которого равен количеству периодов сигнала во временном окне. Если же сигнал занимает не все временное окно а его часть то частотный спектр будет растекаться т. Для упрощения записи формулы приводятся в аналитической а не в дискретной форме с временным окном...