Что такое findslide.org?

FindSlide.org - это сайт презентаций, докладов, шаблонов в формате PowerPoint.


Для правообладателей

Обратная связь

Email: Нажмите что бы посмотреть 

Яндекс.Метрика

Презентация на тему Типичные задачи по программированию

#include void input_mass(int b[], int *k) //k передаём по адресу {int i; puts("Input k"); scanf("%d",k); puts("Input array"); for(i=0;i
Работа над ошибками контрольной.   Задача 1. Дана матрица X[0:n-1][0:m-1] и #include void input_mass(int b[], int *k) //k передаём по адресу  {int void count (int k, int Y[], int n, int m, int X[][10], if (nch!=-1&&nmax!=-1) //если оба найдены void output_c(int nc, int c[])  { int i;  if (nc==0) Задача 2. Дана символьная строка. Заменить каждую подстроку, заключенную в круглые скобки {     f=1; //строка преобразовывалась int main ()  {  char str[maxln];  int f; Задача 1. Дана символьная строка. Написать функцию для выделения подстрок, заключенных в СтруктурыЗадача 2. Даны структуры видаВвести структуры в массив и найти в нем Рассмотрим два варианта ввода1)	Книга # 1	Автор................	Название...........	Год издания.......	Цена...................	Продолжаете ввод? (y/n)	...2)	Число книг в каталоге #include #define lmax 200//пропуск символов до конца строки#define CLR while (getchar()!='\n') struct //Функция ввода массива структур (каталога)void readcat(int *kol, book cat[]){ char ch; //Функция поиска самой дорогой книгиbook *dorog(int kol, book cat[]){	int i, max=0; book
Слайды презентации

Слайд 2 #include
void input_mass(int b[], int *k) //k передаём

#include void input_mass(int b[], int *k) //k передаём по адресу {int

по адресу
{int i;
puts("Input k"); scanf("%d",k);

puts("Input array");
for(i=0;i<*k;i++)
scanf("%d",&b[i]);
}
//для матрицы передаём массив указателей на строки
void input_matr(int a[][10], int *n, int *m)
{int i,j;
puts("Input n,m"); scanf("%d%d",n,m);
puts("Input matrix");
for(i=0;i<*n;i++)
for(j=0;j<*m;j++)
scanf("%d",&a[i][j]);
}

Слайд 3 void count (int k, int Y[], int n,

void count (int k, int Y[], int n, int m, int

int m, int X[][10], int Z[], int *nz)

{ int i,j,t,nch,nmax,flag; *nz=0; //длина нового массива for(j=0;jX[nmax][j]) nmax=i; /* если не первый – сравниваем с максимумом */ }

Слайд 4 if

if (nch!=-1&&nmax!=-1) //если оба найдены

(nch!=-1&&nmax!=-1) //если оба найдены

{ if (nch>nmax) //упорядочиваем чтобы nmax >= nch
t=nmax, nmax=nch, nch=t; if (nmax-nch>1) //между ними есть элементы { flag=1; //признак присутствия всех for(i=nch+1; i for (t=0; t //копируем элементы из матрицы в массив for(i=nch+1; i

Слайд 5 void output_c(int nc, int c[])
{ int

void output_c(int nc, int c[]) { int i; if (nc==0) puts(

i;
if (nc==0) puts("No array c");
else

{
puts("array c");
for(i=0;i printf("%7d",c[i]);
}
}

int main()
{
int a[10][10],n,m,b[10],k,c[50],nc;

input_matr(a, &n, &m);
input_mass(b, &k);
count (k,b,n,m, a, c,&nc);
output_c(nc,c);
return 0;
}


Слайд 6 Задача 2. Дана символьная строка. Заменить каждую подстроку,

Задача 2. Дана символьная строка. Заменить каждую подстроку, заключенную в круглые

заключенную в круглые скобки и состоящую из цифр, звездочками.

Количество звездочек равно первой цифре в подстроке. Преобразование строки оформить как отдельную функцию.

#include
#include
#define maxln 81
int zamena(char s[])
{
char *s1,*s2;
int i,n,f=0;
while (*s) //пока не конец строки
if (*s=='(') //найдено начало подстроки, этот адрес заносим в s1
{
s1=++s;
while (*s&&isdigit(*s))s++; //пропускаем цифры
if (*s==')'&&s1!=s) //если за цифрами скобка и скобки не рядом


Слайд 7 {
f=1; //строка преобразовывалась

{   f=1; //строка преобразовывалась   n=*s1-'0'; //вычисляем количество

n=*s1-'0'; //вычисляем количество цифр

for(s2=s1;*s;*s2++=*s++); //удаляем подстроку
*s2='\0';
for(;s1<=s2;s2--) //освобождаем место для вставки '*'
*(s2+n)=*s2;
for(i=0;i *(s1++)='*';
s=s1;
}
}
else
s++; //если не скобка, идем к следующему символу
return f;
}

Слайд 8 int main ()
{
char str[maxln];

int main () { char str[maxln]; int f; puts(

int f;
puts("input string");
gets(str);

f=zamena(str);
if (f==0)
puts("No changes");
else
{
puts("Modified string ");
puts(str);
}
return 0;
}

Слайд 9 Задача 1. Дана символьная строка. Написать функцию для

Задача 1. Дана символьная строка. Написать функцию для выделения подстрок, заключенных

выделения подстрок, заключенных в комментарии /* … */ и

содержащих только латинские буквы. Привести вызов функции. Вывести полученные подстроки на экран.

Ввод данных и вывод результата осуществить в главной функции.
Выделение подстрок оформить как отдельную функцию с параметрами.

Задача 2. Дана символьная строка. Написать функцию для выделения подстрок, содержащих только латинские буквы и/или цифры и имеющих чётную длину. Привести вызов функции. Вывести полученные подстроки на экран.

Домашнее задание (0.3 балла) Задачу 1 решают студенты с нечётными номерами вариантов по лабораторным, задачу 2 - с чётными. Сдача д/з на ближайшей лекции.


Слайд 10 Структуры
Задача 2. Даны структуры вида








Ввести структуры в массив

СтруктурыЗадача 2. Даны структуры видаВвести структуры в массив и найти в

и найти в нем самую дорогую книгу.
Ввод данных и

поиск оформить как отдельные функции. Функция поиска вернет указатель на самую дорогую книгу.

Книга

Год

Название

Автор

Цена


Слайд 11 Рассмотрим два варианта ввода
1)
Книга # 1
Автор................
Название...........
Год издания.......

Рассмотрим два варианта ввода1)	Книга # 1	Автор................	Название...........	Год издания.......	Цена...................	Продолжаете ввод? (y/n)	...2)	Число книг в

1>
Цена...................
Продолжаете ввод? (y/n)
...
2)
Число книг в каталоге =
Книга #

1
Автор............... <Автор 1>
Название.......... <Название1>
Год издания..... <Год 1>
Цена................. <Цена 1>

Книга # 2
...

Будем использовать 1-й вариант ввода.


Слайд 12 #include

#define lmax 200
//пропуск символов до конца строки
#define

#include #define lmax 200//пропуск символов до конца строки#define CLR while (getchar()!='\n')

CLR while (getchar()!='\n')

struct book
{
char author[20], name[60];
int year, price;
};


Слайд 13 //Функция ввода массива структур (каталога)
void readcat(int *kol, book

cat[])
{ char ch;
*kol=0;
do

{ printf("Book # %d\n", ++(*kol));
printf("Author..........."); gets(cat->author);
printf("Title............"); gets(cat->name);
printf("Publishing year.."); scanf("%d", &cat->year);
printf("Price............"); scanf("%d", &cat->price); CLR;
printf("Continue ? (y/n) ");
ch=getchar();
CLR;
cat++; }
while ((ch=='Y' || ch=='y')&&*kol<=lmax);
}

  • Имя файла: tipichnye-zadachi-po-programmirovaniyu.pptx
  • Количество просмотров: 146
  • Количество скачиваний: 0