Отчет по лабораторной работе Тема: «Простые языковые конструкции»



бет16/16
Дата16.02.2022
өлшемі2,87 Mb.
#132011
түріОтчет
1   ...   8   9   10   11   12   13   14   15   16
Байланысты:
bIST-201 Lebedev

Код программы





Рисунок 52 – код программы.
Результат работы программы




Рисунок 53 - результат выполнения программы.



Рисунок 54 – результат сохранения программы.


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




Постановка задачи

Условие задачи: Создать линейный однонаправленный список из 10 целых чисел. Удалить из списка элемент перед первым элементом со значением 55.




Исходные данные:
sNode – список, введенный пользователем.


Алгоритм решения:

  1. Запросим пользователя ввести список.

  2. Создадим список и заполним его с клавиатуры.

  3. Удалим элемент, стоящий после первого значения 55 .

  4. Выведем результат.



Контрольный пример:
Входные данные: 1 2 3 4 55 6 7 8 9 0;
Результат: 1 2 3 55 6 7 8 9 0.


Словесное описание программы:
Шаг 1 (подключение библиотек, объявление списка):
#include
#include
#include
typedef struct sNode {
struct sNode* next;
int data;
}tNode;
Шаг 2 (реализация функции создания листа):
tNode* listCreate(int a)
{
tNode* tmp = (tNode*)malloc(sizeof(tNode));
tmp->data = a;
tmp->next = NULL;

return(tmp);
}
Шаг 3 (реализация функции добавления элемента в список):
void listAdd(int data, tNode * head)
{
tNode* tmp = (tNode*)malloc(sizeof(tNode));
tmp->data = data;
tmp->next = NULL;
tNode* p = head;

while (p->next != NULL) {
p = p->next;
}
p->next = tmp;
}
Шаг 4 (реализация функции вывода списка):
void nodeOutput(tNode * head)
{
printf("\n");

while (head != NULL)
{

printf("%d ", head->data);
head = head->next;

}

printf("\n");
}


Шаг 5 (реализация функции удаления необходимого элемента)
tNode* removeElement(tNode * head)
{
tNode* p = head;
while (p->next != NULL)
{

if (p->next->next->data == 55)
break;
p = p->next;

}

if (p->next == NULL)
return;

tNode* tmp = p;
p = p->next;
tNode* tmp2 = p;
p = p->next;
tNode* tmp3 = p;
free(tmp2);
tmp->next = tmp3;
}
Шаг 6 (функция main:локализация консоли, объявление переменных):
main()
{

system("chcp 1251");
system("cls");

tNode* first = 0;



int length;
int addValue;
Шаг 7 (запрос к вводу размеров листа и элементов списка):
printf("Input size of a list:");
scanf("%d", &length);
for (int i = 0; i < length; i++)
{
printf("Input %d element:\n", i + 1);
scanf("%d", &addValue);
if (i == 0)
{
first = listCreate(addValue);
}
else {
listAdd(addValue, first);
}
}
Шаг 8 (удаление элемента и вывод результата):
removeElement(first);

printf (" Result is :");
nodeOutput(first);

}


Код программы
Рисунок 55 – код программы.


Результат работы программы
Рисунок 56 - результат выполнения программы.


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




Постановка задачи

Условие задачи: Дана строка вида s*w (s, w – строки из символов, не содержащих символа *). Чтение разрешено по одному символу. Проверить, является ли строка w обратной строке s. Например, для случая s = ABCDEF, w =FEDCBA ответ положительный.




Исходные данные:
text – строка, введенная пользователем.


Алгоритм решения:

  1. Запросим пользователя ввести строку.

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

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

  4. Сравним значения и выведем результат..

Контрольный пример:


Входные данные: машинаанишам;
Результат: Строка w обратна строке s.


Блок- схема программы



Рисунок 57 – Блок-схема программы.
Код программы



Рисунок 58 – код программы.


Результат работы программы



Рисунок 59 - результат выполнения программы.



Достарыңызбен бөлісу:
1   ...   8   9   10   11   12   13   14   15   16




©engime.org 2024
әкімшілігінің қараңыз

    Басты бет