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


 

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

55404. My future profession 97 KB
  I offer you to do an exercise from the theory of solving research tasks (TSRT-pedagogics) called “the tree of assosiations”. You have an algoritm of doing this exercise. Let us start. Write the starting word “profession”.What assosiations do you have with the word “profession”? Write in column as many words as you can and do it very quickly.
55405. PROFESSIONS 122.5 KB
  Nick is a little boy from Oxford. He is 6. He is a pupil. His family is big. His mother`s name is Helen. She is 43. She is a teacher and works at school. His mother teaches children. His father`s name is Bill. He is 44 and he is a businessman. He works at the office. He works with papers. His brother Sam is 22.
55406. The Professions We Choose 114 KB
  It is not who you are, but what you do. These words are closely connected with your topic The Professions we choose. There is great variety of professions. Some of them may seem to be interesting to you, some of them boring.
55407. Буду професіоналом 35.5 KB
  Кожного дня ми, педагоги, маємо змогу працювати з самими ніжними, довірливими, беззахисними, тендітними маленькими особистостями, за розвиток, виховання та навчання яких ми відповідаємо перед батьками, перед державою та насамперед перед самими собою.
55408. Профільна освіта – вимога часу 112 KB
  Допрофільна підготовка це система педагогічної психологічної інформаційної організаційної діяльності яка сприяє самовизначенню учнів старших класів основної школи щодо обраних ними профілюючих напрямків майбутнього навчання та широкої сфери подальшої професійної діяльності.
55409. МОДЕЛЬ ПРОФІЛЬНОГО ВИВЧЕННЯ ОКРЕМИХ ПРЕДМЕТІВ 66 KB
  Задачі школи: створення умов для оволодіння кожним учнем опорними знаннями й уміннями на високому рівні до вимог Державного стандарту з профільних дисциплін; допомога учням у проектуванні індивідуальних освітніх маршрутів;
55410. Від мрії – до професії 79 KB
  Мета: допомогти старшокласникам у визначенні своєї мети стосовно майбутньої професії, намітити шляхи її досягнення, дати рекомендації щодо правильного вибору професії; формувати в учнів потребу у самовдосконаленні.
55412. Sea Wind 652.5 KB
  How are you? We are glad to see you at our competitions “Sea Wind”. There are three teams of 5 players. Every team has the name. Let’s meet them.