4 задания, лабораторная работа. Разработать программную рекурсивную функцию, выводящую на печать числа 1,2, …, n для заданного числа n

  • ID: 23059 
  • 4 страницы
140 рубСкачать

гарантия низкой цены

TASK1.cpp

TASK3.cpp

Отчет.docx

Содержание:


Задача №1

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

Разработать программную рекурсивную функцию, выводящую на печать числа 1,2, …, n для заданного числа n.

Текст программы

#include

#include

void f(int n0,int n)

{

printf("%d\n",n0);

if (n0==n) return;

f(n0+1,n);

return;

}

void main()

{

int n;

clrscr();

printf("N = ");

scanf("%d",&n);

f(1,n);

getch();

}

Задача №3

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

Циклический односвязный неупорядоченный список. Рекурсивные алгоритмы операций.

Текст программы

/*

Циклический односвязный неупорядоченный список.

Рекурсивные алгоритмы операций

*/

#include

#include

struct list

{

int val;

list *next;

};

void scan(list *p)

{

if (p==NULL) {puts(""); return;}

printf("%d ",p->val);

scan(p->next);

}

void insert(list *&ph, int v)

{

if (ph==NULL){

ph=new list;

ph->val=v;

ph->next=NULL;

}

else insert(ph->next,v);

}

void del_key(list *&pp, int key)

{

if ((pp!=NULL&&pp->val==key)||(pp==NULL)){

if (pp==NULL) return;

if (pp!=NULL)

{

}

else

del_key(pp=pp->next,key);

}

void main()

{

int c,v;

list *p=NULL;

while(1)

{

clrscr();

printf("1. Вставка в конец списка\n");

printf("2. Удаление по значению\n");

printf("3. Просмотр\n");

printf("0. Выход\n");

printf("Выбор операции: "); scanf("%d",&c);

switch(c)

{

case 1: printf("Введите целое значение: "); scanf("%d",&v); insert(p,v); break;

case 2: printf("Введите значение для удаления: ");scanf("%d",&v);del_key(p,v); break;

case 3: scan(p); printf("Для продолжения нажимите любую клавишу...\n"); getch(); break;