4250

Статичні одновимірні масиви. Оператори роботи з рядками. Обробка одновимірних масивів та рядків. Практична робота

Практическая работа

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

Статичні одновимірні масиви. Оператори роботи з рядками. Обробка одновимірних масивів та рядків. Мета: навчитись проводити обробку одновимірних масивів та рядків мовою програмування С. Завдання 1. Задано цілочисельний масив розміру N. Назвемо серією...

Украинкский

2012-11-15

141.61 KB

5 чел.

Статичні одновимірні масиви. Оператори роботи з рядками. Обробка одновимірних масивів та рядків.

Мета: навчитись проводити обробку одновимірних масивів та рядків мовою програмування С.

Завдання

1. Задано цілочисельний масив розміру N. Назвемо серією групу однакових елементів, що йдуть підряд, а довжиною серії – кількість цих елементів (довжина серії може бути рівна 1). Вивести масив, що містить довжини всіх серій початкового масиву.

Програма

#include <stdio.h>

void main()

{

int a[20],x[20][2],n,k=0,i;

printf("Vvedit kil'kist' elementiv masuvy (<=20):"); scanf("%d",&n);

printf("Vvedit elementu masuvy:\n");

for (i=0;i<n;i++) {printf("\tA[%d]=",i); scanf("%d",&a[i]);

(i==0)?(x[k][0]=a[i],x[k][1]=1):((a[i-1]==a[i])?(x[k][1]++): (k++,x[k][0]=a[i],x[k][1]=1));};

for (i=0;i<=k;i++) printf("x[%d]=%d\tseria=%d\n",i,x[i][0],x[i][1]);

}


Блок-схема

початок

Ввести(N)

k=0

i=0, k

i=0, N

Ввести(a[i])

i=0?

+

x[k][0]=a[i];

x[k][1]=1

+

(a[ i -1]=a[ i ])?

k=k+1; x[k][0]=a[i];

x[k][1]=1;

x[k][1]= x[k][1]+1

кінець

Вивести(x[i][0],x[i][1])


Висновок

Виконавши роботу, я навчився виконувати різні операції над статичними одновимірними масивами в мові програмування С, а також засвоїв циклічні оператори для обробки елементів масивів.


 

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

29356. Тетрадная форма представления программ в языковых процессорах САПР 23.5 KB
  Списки тетрад. Удобной формой представления бинарных операций являются тетрады вида: оператор операнд1 операнд2 результат ABCD B C T1 A T1 T2 T2 D T3T1 T2 T3 временные переменные формируемые транслятором.Важным свойством списка тетрад является то что тетрады располагаются строго в соответствии с порядком в котором должны быть выполнены операторы при реализации программы.
29357. Алгоритм перевода выражений в польскую запись 37.5 KB
  При работе семантических программ широко используется набор данных с организацией в виде стека. Операнды переписываются в выходную строку а операторы заносятся в стек. В зависимости от приоритета операторов при записи в стек оператор может вытолкнуть из стека другой оператор который последовательно записывается в выходную строку. Работа со стеком организуется так:1.
29359. Машинно-независимая оптимизация линейных участков программ 26.5 KB
  Покажем простейшие преобразования линейных и циклических участков для тетрадной формы программ:Машиннонезависимая оптимизация линейных участков программЛинейным участком программы называется последовательность операцийкоманд которая не содержит условных переходов возможно кроме последней операции. Для оптимизации линейных участков в простейшем случае используется два основных преобразования:1. В списке тетрад выделит границы участков включающих вычисления выражений по операторам присвоения;2.
29360. Машинно-независимая оптимизация циклических участков программ 28 KB
  Рассмотрим возможные преобразования над цикличными участками покажем на примере констрии цикла с заданным количеством повторения.В языке Паскаль такая циклическая конструкция имеет следующий вид: for i: =a to b dobeginтело циклаend;В бейсике: for i =a to b step Sтело циклаnext iв таких конструкциях а и b границы изменения переменной циклаНад подобными конструкциями выполняются следующие оптимизационные преобразования:1. вынесение из тела цикла операций операций которые не измен. в теле цикла;2.
29361. Генерация объектного кода для тетрадной формы представления программ 99.5 KB
  последовательность команд загруженных в фиксированные ячейки памяти2. последовательность перемещенных машинных команд3. Предположим что сумматор может выполнять 4 арифметические операции а в целом система команд также включает еще 2 команды: загрузки сумматора из памяти и сохранение результатов в память.Систему команд такой машины можно представить следующим образом:При выполнении любой из первых двух команд содержимое источника копируется в приемник а при выполнении оставшихся 4 команд содержимое ячейки памяти не изменяется.
29362. Генерация объектного кода по семантическому дереву 52.5 KB
  Существует 3 формы объектного кода1. Чтобы показать процесс генерации кода можно рассмотреть теоретическую вычислительную машину с одним сумматором и неограниченной памятью.Генерация кода осуществляется для программы представленной в некоторой внутренней форме наиболее удобной из которых для генерации кода является список тетрад.
29363. Машинно – зависимая оптимизация объектного кода в языковых процессорах САПР 25 KB
  В самом простом случае машиннозависимая оптимизация заключается в удалении из сформированной последовательности команд избыточных команд загрузки и чтения. Если сложение является коммутативной операцией то последовательность команд LOAD OP1 можно заменить LOAD OP2 ADD OP2 = ADD OP1 2. Если умножение является коммутативной операцией то последовательность команд LOAD OP1 можно заменить LOAD OP2 MULT OP2 = MULT OP1 Эти 2 правила основаны на свойстве коммутативности операций и обеспечивают перестановку местами операндов в соответствующих...
29364. Хеш – адресация в информационных таблицах 51.5 KB
  В основе организации таблиц с хешадресацией лежит процедура хеширования. Хеширование преобразование символьного имени идентификатора в числовой индекс элемента таблицы с помощью простых арифметических и логических операций.Конкретный способ хеширования задает хешфункция.