18534

Одномерные массивы. Упорядоченная совокупность однотипных данных

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

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

Лабораторная работа № 4. Одномерные массивы Массив используется когда дана упорядоченная совокупность однотипных данных чисел символов строк символов и т.д. с ограниченным числом элементов. Примеры описаний массивов: char text[10];/ массив из 10 символов/ int a[50];/ мас...

Русский

2013-07-08

20.3 KB

5 чел.

Лабораторная работа № 4.

Одномерные массивы

Массив используется, когда дана упорядоченная совокупность однотипных данных (чисел, символов, строк символов и т.д.) с ограниченным числом элементов.

Примеры описаний массивов:

char text[10]; /* массив из 10 символов*/

int a[50]; /* массив из 50 целых чисел*/

float matr[5][10]; /* матрица вещ.чисел разм.5х10 */

Для обращения к элементу массива указываются имя массива и индексы элемента в квадратных скобках, например, text[0], a[i+1], matr[i][j]. Индексация начинается с 0 (в приведенном примере text[0] - первый элемент массива, последний элемент имеет индекс 9).

Ввод/вывод массивов осуществляется в цикле поэлементно.

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

Первый вариант:

/***************************************************/

/* Задача. Входная строка содержит последовательность   */

/* слов, разделенных пробелами. Признак конца строки -  */

/* символ '\n' (перевод строки). Вывести на экран слова     */

/* длиной до пяти символов.                                                   */

/***************************************************/

#include <stdio.h>

#define DLSL 80 /* макс. длина слова */

main()

{ char s; /* тек. символ */

char sl[DLSL]; /* тек. слово*/

int i,j; /* индексы тек. символа в слове */

int psl=1; /* признак, что слово длиной до 5 симв. первое */

printf ("\n\nВведите строку символов\n");

s=getchar();

while (s!='\n')

{ if (s==' ') s=getchar();

else

{ i=0;

do

{ sl[i++]=s;

s=getchar();

}

while ((s!=' ') && (s!='\n'));

if (i<5)

{ if (psl) /* если слово первое */

{ printf ("Слова длиной до 5 символов:\n");

psl=0;

}

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

putchar(sl[j]);

putchar(' ');

}

}

}

if (psl) printf ("Слов длиной до 5 символов нет");

}

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

Введите строку символов

май  апрель март весна лето

Слова длиной до 5 символов:

май март лето

Введите строку символов

декабрь январь февраль

Слов длиной до 5 символов нет

Второй вариант программы:

/***************************************************/

/* Задача. Входная строка содержит последовательность   */

/* слов, разделенных пробелами. Признак конца строки -  */

/* символ '\n' (перевод строки). Вывести на экран слова     */

/* длиной до пяти символов.                                                   */

/***************************************************/

#include <stdio.h>

#define DLSTR 80 /* макс.длина строки */

main()

{ char str[DLSTR]; /* тек. строка */

int i,j; /* индексы тек. символа в строке */

int n,k; /* индексы перв. и посл. символов тек. Слова в строке */

int net_sl=1; /* признак, что слов длиной до 5 симв. нет */

printf ("\n\nВведите строку символов\n");

gets(str); /* ввод строки в массив str c заменой символа '\n' на признак

конца строки '\0'  */

printf ("Результат:\n");

i=0;

while (str[i]!='\0')

{ if (str[i]==' ')  i++;

else

{ n=i;

do i++; while ((str[i]!=' ') && (str[i]!='\0'));

k=i;

if ( k-n < 5 )

{ for (j=n; j<k; j++)

putchar(str[j]);

putchar(' ');

net_sl=0;

}

}

}

if (net_sl) printf ("Слов длиной до 5 символов нет.");

printf ("\nДля завершения нажмите любую клавишу");

getch(); /* чтение символа без отображения его на экране */

}

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

Введите строку символов

весна лето осень зима

Результат:

лето зима

Для завершения нажмите любую клавишу

Введите строку символов

декабрь январь февраль

Результат:

Слов длиной до 5 символов нет.

Для завершения нажмите любую клавишу

Порядок выполнения работы.

1. Получить задание у преподавателя.

2. Составить программу на Си и подобрать тесты для проверки программы на ЭВМ.

3. Отладить программу на ЭВМ.

4. Оформить и сдать отчет по лабораторной работе.

Задания.

  1. Дана последовательность из N различных вещественных чисел. Найти сумму чисел, расположенных между максимальным и минимальным числами.
  2. Дан текст произвольной длины. Определить сколько раз встречается каждая цифра в тексте.
  3. Задан текст, произвольной длины, состоящий из слов, разделенных пробелами. Вывести самое короткое слово.
  4. Дан текст, произвольной длины. Определить символ, встречающийся в тексте с максимальной частотой.
  5. Дан текст, длиной не более 80 символов, заканчивающийся точкой. Определить, симметричен ли он.
  6. Заданы две упорядоченные по возрастанию последовательности из N чисел и М чисел. Составить программу, объединяющую их в одну упорядоченную по возрастанию последовательность.
  7. Дан массив из 10 вещественных чисел. Упорядочить массив по возрастанию методом последовательного нахождения минимума.
  8. Дан одномерный массив, размером в 12 элементов. Необходимо инвертировать массив, путем замены значения первого элемента на последний, второго на предпоследний и так далее.
  9. Задан текст, произвольной длины, состоящий из слов, разделенных пробелами. Вывести только те слова, которые начинаются и заканчиваются на одну и ту же букву.
  10. Задан текст, произвольной длины, состоящий из слов, разделенных пробелами. Вывести только те слова, которые содержат букву ‘а’.
  11. Дана последовательность из N вещественных чисел. Распечатать числа в обратном порядке по 6 чисел в строке.
  12. Задан текст, произвольной длины, состоящий из слов, разделенных пробелами. Вывести только те слова, которые не содержат букву ‘а’.
  13. Текст содержит выражение со скобками. Напечатать выражение, заключенное в самые внутренние скобки.
  14. Задан текст, произвольной длины, состоящий из слов, разделенных пробелами. Вывести самое длинное слово.
  15. Дан текст, произвольной длины. Определить сколько раз встречается каждая латинская буква в тексте.
  16. Дана строка символов. Признак конца ‘\n’. Вывести слова заканчивающиеся буквой ‘а’, с порядковым номером этих слов.


 

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

34618. «Новый курс» Ф.Рузвельта 18.18 KB
  В принятом Чрезвычайном законе о банках предусматривалось возобновление функций и получение правительственных кредитов займов из федеральной резервной системы хотя это разрешалось только наиболее крупным банкам. был принят один из двух наиболее важных законов закон о восстановлении национальной промышленности НИРА. Закон о восстановлении промышленности вводил систему государственного регулирования этого подразделения экономики. Во втором и третьем разделах закона...
34619. Историко-литературная концепция Белинского и ее эволюция 32.5 KB
  Вся литература до Пушкина – пересаженное иноземное растение. В слово натуральная он вкладывал понятие литература для народа а так же литература философствующая. Он понимал что есть литература как зеркало общества Гоголь НШ и литература как зеркало человека бытийственность.
34620. Мастерство полемического стиля Белинского 23 KB
  Приемы полемики: каждая статья носит прямой или скрытый полемический характер. прием интеллектуальной бури. прием иронической ремарки независимо от того о ком он пишет. прием притворного простодушия.
34621. Историко-литературная концепция Белинского и ее эволюция 45.5 KB
  Вся литература до Пушкина – пересаженное иноземное растение. Сочинения Пушкина периоды: Ломоносовский карамзинский державинский пушкинский. Русская литра развивалась по двум направлениям которые слились в творчестве Пушкина. НШ как понимал ее Белинский никак не связана с творчеством Пушкина.
34622. Творчество Лермонтова в оценке критики 40-х гг 29 KB
  Его ждет душевная чахотка и гибель. Белинский: когда вышел роман Белинский пишет: дьявольский талант глубокий и могучий ум озлобленный рассудочный охлажденный взгляд Пушкин умер не без наследника лейтмотив статьи Белинского про Л. Белинский попал под магическое влияние и скучно и грустно назывет его рефлекторным следовательно вся поэзия Л рефлекторна. бел оправдывает рефлексию безверие.
34623. Споры вокруг творчества Гоголя в критике 30 – 40-х гг 27 KB
  Аксаков и Белинский. Бел в ЛМ 1834 г. В 1839 Бел пишет статью Горе от ума где большая часть посвящена Ревизору в которой пытается навязать читателю примирение с действительностью. МД Бел много сделал для того чтобы рукопись вышла в печать.
34624. Цикл статей Белинского «Сочинения Пушкина» 24.5 KB
  Цикл статей Белинского Сочинения Пушкина С 1843 г. В грусти наиболее национальная черта поэзии Пушкина. Пушкина сотворила натура и история 1 2 3 статьи – монографический обзор литературы 19 века: Ломоносов Державин Жуковский. С 4 статьи в строго хронологическом порядке исследует творчество Пушкина.
34625. Писатели НШ в оценке критики 40-х гг 22.5 KB
  Началась полемика. Эта полемика продолжалась и в обзорах Белинского. Полемика не привела к победе западников над с ф но она дала импульс к развитию критического реализма.
34626. Неославянофильство и почвенничество в критике 50 – 60-х гг 29 KB
  Основные идеи неославянофильства и почвенничества: идеализация общинного национального сознания соборность русского народа в силу климата географического положения соборность смиренномудрие национальный характер сохраняется не только в крестьянстве но и в купечестве. Размышляет что такое СОБОРНОСТЬ. Разводит понятия СОБОРНОСТЬ и КОЛЛЕКТИВ. Соборность не уничтожает индивидуальность народа.