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’. Вывести слова заканчивающиеся буквой ‘а’, с порядковым номером этих слов.


 

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

85834. Цели и стратегии ценовой политики комплекса «Веранда» 1.13 MB
  Выбор метода ценообразования и установление окончательного уровня цены. Определить базовые и тактические цены на основные услуги предприятия. Способ установления цены характеризует не только природу рынка но и саму экономическую систему.
85835. Технико-экономическое усовершенствование на предприятии «Завода Продовольственных Товаров «КАРЕ» 2.07 MB
  Технико-экономический анализ деятельности предприятия включает: анализ объема сортамента и реализации продукции; анализ трудовых показателей; анализ себестоимости продукции; анализ прибыли; технический анализ оборудования а также комплексную оценку фактической интенсификации производства против...
85836. Разработка программы развития предприятия (на примере ЗАО «ТД «Северсталь-Инвест») 1.93 MB
  Цель дипломного проекта – разработать программу развития предприятия на базе статистических данных в пределах имеющегося складского пространства, повышающую эффективность деятельности компании. В процессе работы разработан новый и модернизирован существующий открытый склад на базе металлоцентра.
85837. Оптимизация бизнес-процесса ЗападноСибирского банка ОАО «Сбербанк России» 2.87 MB
  Переход компаний от стратегии, ориентированной на «изготовление» продуктов, к стратегии, направленной на удовлетворение потребностей клиентов, требует качественно иного подхода к управлению. Для того чтобы отвечать требованиям клиентов, необходима смена базовых принципов организации компании...
85838. Принципы и особенности функционирования АСУсвязь областного государственного предприятия электросвязи «Лугансктелеком» 1.45 MB
  Повышение эффективности производственно-хозяйственной деятельности предприятия в результате применения АСУП достигается за счет повышения качества решения планово-экономических задач и улучшения на его основе использования производственных ресурсов а также благодаря рационализации деятельности управленческого персонала.
85839. Рекомендации по совершенствованию работы персонала суши-бара «Эдем» 998 KB
  Квалификация персонала, его профессионализм приобретают все большее значение. Обучение и повышение квалификации, мотивация уже работающего персонала - необходимость каждого предприятия. Для обеспечения необходимого уровня качества нужна не только соответствующая материальная база и заинтересованный...
85840. ПРАКТИЧЕСКОЕ ПРИМЕНЕНИЕ ПРОЕКТНОГО МЕНЕДЖМЕНТА В ДЕЯТЕЛЬНОСТИ ООО АН «ДИНАСТИЯ» 3.02 MB
  Целью дипломной работы является анализ эффективности применения проектного управления для повышения эффективности деятельности ООО АН «Династия» Цель данной работы определила следующие ее задачи: Рассмотреть общие понятия управления проектами; Составить обзор программных средств для управления проектами...
85841. РАЗРАБОТКА ПРЕДЛОЖЕНИЙ ПО ПОВЫШЕНИЮ ЭФФЕКТИВНОСТИ ФУНКЦИОНИРОВАНИЯ ГОСЗАКУПОК В ЭЛЕКТРОННОМ ФОРМАТЕ 1.47 MB
  Мировой опыт показывает что наиболее рациональным способом организации закупок для государственных нужд является осуществление закупок посредством проведения конкурсных торгов которые способствуют здоровой конкуренции и значит являясь чисто экономическим инструментом поддержки наиболее перспективных предприятий...