Студопедия

КАТЕГОРИИ:

АвтоАвтоматизацияАрхитектураАстрономияАудитБиологияБухгалтерияВоенное делоГенетикаГеографияГеологияГосударствоДомЖурналистика и СМИИзобретательствоИностранные языкиИнформатикаИскусствоИсторияКомпьютерыКулинарияКультураЛексикологияЛитератураЛогикаМаркетингМатематикаМашиностроениеМедицинаМенеджментМеталлы и СваркаМеханикаМузыкаНаселениеОбразованиеОхрана безопасности жизниОхрана ТрудаПедагогикаПолитикаПравоПриборостроениеПрограммированиеПроизводствоПромышленностьПсихологияРадиоРегилияСвязьСоциологияСпортСтандартизацияСтроительствоТехнологииТорговляТуризмФизикаФизиологияФилософияФинансыХимияХозяйствоЦеннообразованиеЧерчениеЭкологияЭконометрикаЭкономикаЭлектроникаЮриспунденкция

Использование одномерных массивов




Цель работы

Целью лабораторной работы является получение практических навыков при работе с массивами на языке С.

Темы для предварительной проработки

  • Операторы цикла языка C.
  • Условный оператор языка C.
  • Массивы в языке C.

Задание

Выполнить индивидуальное задание в соответствии с вариантом.

Пример программы

№ варианта Тип элементов массива Размер-ность массива Способ инициализа-ции Задание
21 символы 20 строковый литерал Определить количество введенных заглавных букв латинского алфавита (коды 65-90) и количество остальных символов отдельно.

 

 

#include <iostream.h>

 

int main(void) {

 int i, kol_char, kol_ost;

 char c;

 kol_char=0;

 kol_ost=0;

 char mas_char[20]={'f','F','.','>','9','=','T','3','@','O','E','^','v','M','H','a','R','[','-','Q'};

 for (i=0; i<=19; i++)

 { c=mas_char[i];

cout<<mas_char[i]<<' ';

if ((c>=65)&&(c<=90))

   kol_char++;

else kol_ost++;

}

 cout<<"\n";

 cout<<"kol_char="<<kol_char<<"\n";

 cout<<"kol_ost="<<kol_ost<<"\n";

 

return 0;

}

 

Варианты индивидуальных заданий

№ варианта Тип элементов массива Размер-ность массива Способ инициализа-ции Задание
1 символы задается пользователем с клавиатуры Заполнить массив. Вывести позицию первого и последнего вхождения символа «а» в нем.
2 символы 15 строковый литерал Подсчитать количество букв «а», «b», «c», «d» и «f». Результаты записать в другой массив и вывести его на экран.
3 символы 30 генератор случайных чисел Заполнить массив. Определить количество введенных строчных букв латинского алфавита (коды 97-122) и количество остальных символов отдельно.
4 целые числа 10 с клавиатуры Определить количество одинаковых элементов массива.
5 символы 25 генератор случайных чисел Заполнить массив. Определить, имеются ли среди его элементов символы «;», «.», «?» и «,».
6 целые числа 30 генератор случайных чисел Поменять местами максимальный и минимальный элементы и напечатать все элементы, расположенные между ними
7 веществен-ные числа 20 в тексте программы Переписать в другой массив все числа, меньшие 5.
8 символы 12 с клавиатуры Удалить из массива все пробелы. Результат записать в другой массив и вывести его на экран.
9 целые числа 10 с клавиатуры Найти среднее арифметическое всех элементов
10 вещественные числа 15 в тексте программы Найти 3 наименьших элемента массива
11 символы задается пользователем генератор случайных чисел Заполнить массив. Поменять местами максимальный и минимальный по коду символы.
12 целые числа задается пользователем с клавиатуры Удалить из массива все числа, большие 3. Результат записать в другой массив и вывести его на экран.
13 символы задается пользователем с клавиатуры Записать все символы массива в другой массив в обратном порядке
14 вещественные числа 10 с клавиатуры После каждого положительного числа вставить 100. Результат записать в другой массив и вывести его на экран.
15 целые числа 25 в тексте программы Скопировать из массива несколько чисел. Начальную и конечную позицию копируемых символов задает пользователь. Результат записать в другой массив и вывести его на экран.
15 вещественные числа задается пользователем с клавиатуры В середину массива вставить число, являющееся суммой всех элементов массива.
16 символы 20 строковый литерал После каждого символа «а» вставить пробел. Результат записать в другой массив и вывести его на экран.
17 вещественные числа 15 в тексте программы Округлить все элементы массива до наименьшего ближайшего целого.
18 символы 25 строковый литерал Скопировать из массива символы с 10-го по 20-й. Результат записать в другой массив и вывести его на экран.
19 целые числа 20 в тексте программы Найти сумму всех отрицательных элементов
20 целые числа 30 генератор случайных чисел После каждого четного числа вставить 0. Результат записать в другой массив и вывести его на экран.

 

 



Лабораторная работа №9

Работа со строками

Цель работы

Целью лабораторной работы является получение практических навыков при работе со строками на языке С.

Темы для предварительной проработки

  • Операторы цикла языка C.
  • Условный оператор языка C.
  • Массивы в языке C.
  • Строки символов в языке C.

Задания для выполнения

Разработать функцию, которая выполняет ту обработку символьной строки, которая определена в Вашем индивидуальном задании. При реализации функции запрещается пользоваться функциями библиотек языка C.

Примечания:

1. В большинстве заданий необходимо предусмотреть работу функции при некорректном задании ее параметров.

2. В тех заданиях, где применен термин "слово", под ним понимается любая последовательность символов, ограниченная любым числом пробелов и/или началом/концом строки.

Пример программы

 

№ варианта Задание
21 Функция выделяет из заданной строки подстроку заданной длины, начиная с заданной позиции.

 

#include <stdio.h>

#include <iostream.h>

int substr(char[], char[], int, int); //функция выделения подстроки

int main(void) {

 char str1[100], str2[100]; //исходная строка и строка-результат

 int p,l,r;

 /* Ввод исходных данных */

 printf("Input string\n");

 scanf("%s", str1);

 printf("Input position\n");

 cin>>p;            //позиция символа, с которой копировать

 printf("Input length\n");

 cin>>l;             //количество копируемых символов

 

 r=substr(str1,str2,p,l); //вызов функции r=0 – успешное выполнение,

                                                             //r=1 – ошибка

 if(r==0)

 { cout<<"Result string"<<endl;

cout<<str2<<endl;}

else cout<<"Data error"<<endl;

 return 0;

}

int substr(char s1[], char s2[], int pos, int len)

{ int l1=0, l2=0, i=0;

char c;

do {

c=s1[i];

i++;

}while ((int)c!='\0');

l1=i-1;

l2=len;

if ((pos+len>l1)||(pos<0)||(len<=0))

   return 1;

else

   { for (i=pos; i<=pos+len-1; i++)

      { s2[i-pos]=s1[i];

           cout<<s1[i]<<endl;}

   s2[l2]='\0';

   return 0;}

}

Варианты индивидуальных заданий

 

№ варианта Задание
1 Функция подсчитывает количество слов в строке.
2 Функция дописывает одну строку в конец другой.
3 Функция выделяет первое слово из строки.
4 Функция сравнивает две строки, игнорируя различия в регистрах.
5 Функция разбивает строку на две части: до первого вхождения заданного символа и после него.
6 Функция выравнивает строку по левому краю до заданной длины.
7 Функция удаляет из строки заданное количество символов, начиная с заданной позиции.
8 Функция доводит длину строки до заданной, вставляя пробелы между словами
9 Функция находит в строке первый символ, который входит в другую заданную строку.
10 Функция сравнивает две строки, игнорируя количество пробелов между словами
11 Функция удаляет из начала и из конца строки заданный символ.
12 Функция выравнивает строку по правому краю до заданной длины
13 Функция находит в строке первый символ, который не входит в другую заданную строку.
14 Функция вставляет в строку другую строку, начиная с заданной позиции.
15 Функция дописывает одну строку в начало другой
16 Функция переписывает все символы строки в обратном порядке.
17 Функция определяет длину слова с заданным номером
18 Функция копирует строку в другую строку заданное количество раз
19 Функция находит первое вхождение в строку заданной подстроки
20 Функция выделяет из строки заданное количество слов, начиная со слова с заданным номером

 



Лабораторная работа №10

Использование многомерных массивов

Цель работы

Целью лабораторной работы является получение практических навыков при работе с многомерными массивами на языке С.

Темы для предварительной проработки

  • Операторы цикла языка C.
  • Условный оператор языка C.
  • Массивы в языке C.

Задание

Выполнить индивидуальное задание в соответствии с вариантом.

Пример программы

№ вари-анта Тип элементов массива Размер-ность массива Способ инициализа-ции Задание
21 целые числа 3х3х3 генератор случайных чисел Преобразовать многомерный массив в одномерный

 

#include <stdio.h>

#include <stdlib.h>

 

int main(void) {

 int i, j, k; /* индексы многомерного массива */

 int i1; /* индекс одномерного массива */

 const n=3, m=3, l=3;

 int mas_3D[n][m][l]; /* многомерный массив */

 int mas_1D[n*m*l]; /* одномерный массив */

 int firs_value=-10;

 int last_value=10*2;

 

 /* заполнение массива случайными числами */

 for (i=0; i<=n-1; i++)

  for (j=0; j<=m-1; j++)

    for (k=0; k<=l-1; k++)

      mas_3D[i][j][k]=firs_value + rand() % last_value;

 

/* вывод на экран начального массива */

printf("Begining mas:\n");

for (i=0; i<=n-1; i++)

{ printf("i=%i",i);

printf("\n");

for (j=0; j<=m-1; j++)

{ for (k=0; k<=l-1; k++)

     printf("%5i",mas_3D[i][j][k]);

  printf("\n");}

}

/* заполнение одномерного массива */

 for (i=0; i<=n-1; i++)

  for (j=0; j<=m-1; j++)

    for (k=0; k<=l-1; k++)

           { i1=i*m*l+j*l+k;

           mas_1D[i1]=mas_3D[i][j][k]; }

 

/* вывод результатов */

printf("Ending mas:\n");

for (i1=0; i1<=n*m*l-1; i1++)

printf("%5i",mas_1D[i1]);

printf("\n");

return 0;

}

 

 

Варианты индивидуальных заданий

№ варианта Тип элементов массива Размер-ность массива Способ инициализа-ции Задание
1 целые числа 15 в тексте программы Преобразовать одномерный массив в двумерный
2 веществен-ные числа задается пользователем (mxn) с клавиатуры Преобразовать двумерный массив в одномерный
3 целые числа 4х4 с клавиатуры Заполнить массив. Отобразить элементы массива симметрично относительно главной диагонали
4 символы задается пользователем (mxnхl) генератор случайных чисел Определить количество управляющих символов в массиве (коды 1-32).
5 веществен-ные числа 3х5 в тексте программы Ограничить все элементы сверху до 10 и снизу – до 0.
6 символы 5х10 строковый литерал Определить количество знаков препинания среди символов («;», «.», «:» и «,»). Результат записать в одномерный массив.
7 символы 5х5 с клавиатуры Заменить все строчные буквы латинского алфавита на заглавные.
8 веществен-ные числа в массив заносятся координаты х и у для 10 точек (2х10) Х-равно-отстоят друг от друга (1,2,…), а У-задается пользовате-лем Сгладить экстремумы функции ( ).
9 символы 3х3х3 строковый литерал Найти позицию максимального и минимального по коду символа и поменять их местами.
10 веществен-ные числа задается пользователем (n) с клавиатуры Преобразовать одномерный массив в трехмерный. Недостающие элементы заполнить нулями.
11 целые числа 3х3х5 в тексте программы Найти и вывести на экран все делители числа 24, которые есть среди элементов массива.
12 веществен-ные числа в массив заносятся координаты х, у и z для n точек (3хn), n задается пользователем x=0,1,2,…, z=0, 0.5, 1, 1.5,… y= Округлить все у-координаты до наибольшего ближайшего целого.
13 целые числа 7х7 генератор случайных чисел Изменить порядок следования элементов массива на противоположный.
14 символы 5х5 строковый литерал Отобразить элементы массива симметрично относительно побочной диагонали
15 вещественные числа 6х2 с клавиатуры Поменять местами элементы с четным первым индексом на соседний (с нечетным первым индексом)
15 символы 3х3х5 генератор случайных чисел Все символы латинского алфавита заменить на «*».
16 вещественные числа задается пользователем (mxn) с клавиатуры В каждом столбце найти наибольший элемент. Результат записать в одномерный массив и вывести его на экран.
17 символы задается пользователем (mxnхl) с клавиатуры Все цифры заменить на «0».
18 целые числа Два массива 5х5 генератор случайных чисел Найти все одинаковые элементы в двух массивах. Результат записать в одномерный ой массив и вывести его на экран.
19 вещественные числа 5х2 с клавиатуры Найти позицию максимального и минимального элемента и подсчитать количество элементов между ними.
20 целые числа Два массива 5х5 генератор случайных чисел Найти все несовпадающие элементы в двух массивах. Результат записать в одномерный ой массив и вывести его на экран.

 

 



Лабораторная работа №11

Сортировка массивов

Цель работы

Целью лабораторной работы является получение практических навыков при работе с сортировкой массивов на языке С.










Последнее изменение этой страницы: 2018-05-10; просмотров: 175.

stydopedya.ru не претендует на авторское право материалов, которые вылажены, но предоставляет бесплатный доступ к ним. В случае нарушения авторского права или персональных данных напишите сюда...