🗊Даная матрица Задача 1. Дана матрица X[0:n-1][0:m-1] и массив Y[0:k-1]. Написать программу, которая вычисляет массив Z, состоящий из элементов X

Категория: Информатика
Нажмите для полного просмотра!
Даная матрица  Задача 1. Дана матрица X[0:n-1][0:m-1] и массив Y[0:k-1]. Написать программу, которая вычисляет массив Z, состоящий из элементов X, слайд №1Даная матрица  Задача 1. Дана матрица X[0:n-1][0:m-1] и массив Y[0:k-1]. Написать программу, которая вычисляет массив Z, состоящий из элементов X, слайд №2Даная матрица  Задача 1. Дана матрица X[0:n-1][0:m-1] и массив Y[0:k-1]. Написать программу, которая вычисляет массив Z, состоящий из элементов X, слайд №3Даная матрица  Задача 1. Дана матрица X[0:n-1][0:m-1] и массив Y[0:k-1]. Написать программу, которая вычисляет массив Z, состоящий из элементов X, слайд №4Даная матрица  Задача 1. Дана матрица X[0:n-1][0:m-1] и массив Y[0:k-1]. Написать программу, которая вычисляет массив Z, состоящий из элементов X, слайд №5Даная матрица  Задача 1. Дана матрица X[0:n-1][0:m-1] и массив Y[0:k-1]. Написать программу, которая вычисляет массив Z, состоящий из элементов X, слайд №6Даная матрица  Задача 1. Дана матрица X[0:n-1][0:m-1] и массив Y[0:k-1]. Написать программу, которая вычисляет массив Z, состоящий из элементов X, слайд №7Даная матрица  Задача 1. Дана матрица X[0:n-1][0:m-1] и массив Y[0:k-1]. Написать программу, которая вычисляет массив Z, состоящий из элементов X, слайд №8Даная матрица  Задача 1. Дана матрица X[0:n-1][0:m-1] и массив Y[0:k-1]. Написать программу, которая вычисляет массив Z, состоящий из элементов X, слайд №9Даная матрица  Задача 1. Дана матрица X[0:n-1][0:m-1] и массив Y[0:k-1]. Написать программу, которая вычисляет массив Z, состоящий из элементов X, слайд №10Даная матрица  Задача 1. Дана матрица X[0:n-1][0:m-1] и массив Y[0:k-1]. Написать программу, которая вычисляет массив Z, состоящий из элементов X, слайд №11Даная матрица  Задача 1. Дана матрица X[0:n-1][0:m-1] и массив Y[0:k-1]. Написать программу, которая вычисляет массив Z, состоящий из элементов X, слайд №12Даная матрица  Задача 1. Дана матрица X[0:n-1][0:m-1] и массив Y[0:k-1]. Написать программу, которая вычисляет массив Z, состоящий из элементов X, слайд №13Даная матрица  Задача 1. Дана матрица X[0:n-1][0:m-1] и массив Y[0:k-1]. Написать программу, которая вычисляет массив Z, состоящий из элементов X, слайд №14

Вы можете ознакомиться и скачать Даная матрица Задача 1. Дана матрица X[0:n-1][0:m-1] и массив Y[0:k-1]. Написать программу, которая вычисляет массив Z, состоящий из элементов X. Презентация содержит 14 слайдов. Презентации для любого класса можно скачать бесплатно. Если материал и наш сайт презентаций Вам понравились – поделитесь им с друзьями с помощью социальных кнопок и добавьте в закладки в своем браузере.

Слайды и текст этой презентации


Слайд 1





Даная матрица

Задача 1. Дана матрица X[0:n-1][0:m-1] и массив Y[0:k-1]. Написать программу, которая вычисляет массив Z, состоящий из элементов X, расположенных между первым четным   и максимальным нечетным элементами  каждого столбца,  если все эти элементы  присутствуют в массиве Y. Ввод данных и вычисления оформить в виде отдельных функций.
Описание слайда:
Даная матрица Задача 1. Дана матрица X[0:n-1][0:m-1] и массив Y[0:k-1]. Написать программу, которая вычисляет массив Z, состоящий из элементов X, расположенных между первым четным и максимальным нечетным элементами каждого столбца, если все эти элементы присутствуют в массиве Y. Ввод данных и вычисления оформить в виде отдельных функций.

Слайд 2





#include <stdio.h>
#include <stdio.h>
void input_mass(int b[], int *k) //k передаём по адресу
   {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]);
   }
Описание слайда:
#include <stdio.h> #include <stdio.h> void input_mass(int b[], int *k) //k передаём по адресу {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, int m, int X[][10], int Z[], int *nz)
   { int i,j,t,nch,nmax,flag;
  
   *nz=0; //длина нового массива
   for(j=0;j<m;j++)
      {
      nch=nmax=-1; //оба индекса могут быть не найдены
      for(i=0;i<n;i++)
         {
         if (X[i][j]%2==0&&nch==-1) nch=i; //если чётный и первый
         if (X[i][j]%2!=0) //если нечётный
            if (nmax==-1) nmax=i; //если первый
            else
               if (X[i][j]>X[nmax][j]) nmax=i; /* если не первый – сравниваем с максимумом */
         }
Описание слайда:
void count (int k, int Y[], int n, int m, int X[][10], int Z[], int *nz) { int i,j,t,nch,nmax,flag; *nz=0; //длина нового массива for(j=0;j<m;j++) { nch=nmax=-1; //оба индекса могут быть не найдены for(i=0;i<n;i++) { if (X[i][j]%2==0&&nch==-1) nch=i; //если чётный и первый if (X[i][j]%2!=0) //если нечётный if (nmax==-1) nmax=i; //если первый else if (X[i][j]>X[nmax][j]) nmax=i; /* если не первый – сравниваем с максимумом */ }

Слайд 4





              if (nch!=-1&&nmax!=-1) //если оба найдены
            {
            if (nch>nmax) //упорядочиваем чтобы nmax >= nch
              if (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<nmax&&flag; i++)
                  { //проверка присутствия элемента X[i][j] в Y[0:k-1]
                      for (t=0; t<k&&X[i][j]!=Y[t]; t++);
                  if (t==k) flag=0; //если отсутствует
                  }
               if (flag) //присутствуют все
		           //копируем элементы из матрицы в массив
                  for(i=nch+1; i<nmax; i++)
                     Z[(*nz)++]=X[i][j];
               }
            }
      }
   }
Описание слайда:
if (nch!=-1&&nmax!=-1) //если оба найдены { if (nch>nmax) //упорядочиваем чтобы nmax >= nch if (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<nmax&&flag; i++) { //проверка присутствия элемента X[i][j] в Y[0:k-1] for (t=0; t<k&&X[i][j]!=Y[t]; t++); if (t==k) flag=0; //если отсутствует } if (flag) //присутствуют все //копируем элементы из матрицы в массив for(i=nch+1; i<nmax; i++) Z[(*nz)++]=X[i][j]; } } } }

Слайд 5





void output_c(int nc, int c[])
void output_c(int nc, int c[])
   { int i;
    if (nc==0) puts("No array c");
    else
       {
       puts("array c");
       for(i=0;i<nc;i++)
          printf("%7d",c[i]);
       }
   }
Описание слайда:
void output_c(int nc, int c[]) void output_c(int nc, int c[]) { int i; if (nc==0) puts("No array c"); else { puts("array c"); for(i=0;i<nc;i++) printf("%7d",c[i]); } }

Слайд 6





Задача 2. Дана символьная строка. Заменить каждую подстроку, заключенную в круглые скобки и состоящую из цифр, звездочками. Количество звездочек равно первой цифре в подстроке. Преобразование строки оформить как отдельную функцию.
#include <stdio.h>
#include <ctype.h>
#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) //если за цифрами скобка и скобки не рядом
Описание слайда:
Задача 2. Дана символьная строка. Заменить каждую подстроку, заключенную в круглые скобки и состоящую из цифр, звездочками. Количество звездочек равно первой цифре в подстроке. Преобразование строки оформить как отдельную функцию. #include <stdio.h> #include <ctype.h> #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; //строка преобразовывалась
         n=*s1-'0'; //вычисляем количество цифр
         for(s2=s1;*s;*s2++=*s++); //удаляем подстроку
         *s2='\0';
         for(;s1<=s2;s2--) //освобождаем место для вставки '*' 
            *(s2+n)=*s2;
         for(i=0;i<n;i++) //вставляем звездочки
            *(s1++)='*';
         s=s1;
         }
      }
   else
      s++; //если не скобка, идем к следующему символу
   return f;
   }
Описание слайда:
{ { f=1; //строка преобразовывалась n=*s1-'0'; //вычисляем количество цифр for(s2=s1;*s;*s2++=*s++); //удаляем подстроку *s2='\0'; for(;s1<=s2;s2--) //освобождаем место для вставки '*' *(s2+n)=*s2; for(i=0;i<n;i++) //вставляем звездочки *(s1++)='*'; s=s1; } } else s++; //если не скобка, идем к следующему символу return f; }

Слайд 8





int main ()
int main ()
   {
   char str[maxln];
   int f;
   puts("input string");
   gets(str);
   f=zamena(str);
   if (f==0)
      puts("No changes");
   else
      {
      puts("Modified string ");
      puts(str);
      }
   return 0;
   }
Описание слайда:
int main () int main () { char str[maxln]; 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. Дана символьная строка. Написать функцию для выделения подстрок, заключенных в комментарии /* … */ и содержащих только латинские буквы. Привести вызов функции. Вывести полученные подстроки на экран. Ввод данных и вывод результата осуществить в главной функции. Выделение подстрок оформить как отдельную функцию с параметрами.

Слайд 10





Структуры
Задача 2. Даны структуры вида
Ввести структуры в массив и найти в нем самую дорогую книгу.
Ввод данных и поиск оформить как отдельные функции. Функция поиска вернет указатель на самую дорогую книгу.
Описание слайда:
Структуры Задача 2. Даны структуры вида Ввести структуры в массив и найти в нем самую дорогую книгу. Ввод данных и поиск оформить как отдельные функции. Функция поиска вернет указатель на самую дорогую книгу.

Слайд 11





Рассмотрим два варианта ввода
1)
	Книга # 1
	Автор................<Автор 1>
	Название...........<Название1>
	Год издания.......<Год 1>
	Цена...................<Цена 1>
	Продолжаете ввод? (y/n)
	...
Описание слайда:
Рассмотрим два варианта ввода 1) Книга # 1 Автор................<Автор 1> Название...........<Название1> Год издания.......<Год 1> Цена...................<Цена 1> Продолжаете ввод? (y/n) ...

Слайд 12





#include <stdio.h>
#include <stdio.h>
#define lmax 200
//пропуск символов до конца строки
#define CLR while (getchar()!='\n') 
struct book
{	
char author[20], name[60];
int year, price;
};
Описание слайда:
#include <stdio.h> #include <stdio.h> #define lmax 200 //пропуск символов до конца строки #define 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);
}
Описание слайда:
//Функция ввода массива структур (каталога) //Функция ввода массива структур (каталога) 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); }

Слайд 14





//Функция поиска самой дорогой книги
//Функция поиска самой дорогой книги
book *dorog(int kol, book cat[])
{	int i, max=0; book *dorkn;
    for (i=0; i<kol; i++, cat++)
        if (cat->price>max) max=cat->price, dorkn=cat;
    return (dorkn);}
int main()
    {
    int kolknig; book catalog[200], *dorkniga;
    readcat(&kolknig, catalog);
    dorkniga=dorog(kolknig, catalog);
    printf("Most expensive book:\n");
    printf("Author...........%s\n", dorkniga->author);
    printf("Title............%s\n", dorkniga->name);
    printf("Publishing year..%d\n", dorkniga->year);
    printf("Price............%d\n", dorkniga->price);        
    return 0;}
Описание слайда:
//Функция поиска самой дорогой книги //Функция поиска самой дорогой книги book *dorog(int kol, book cat[]) { int i, max=0; book *dorkn; for (i=0; i<kol; i++, cat++) if (cat->price>max) max=cat->price, dorkn=cat; return (dorkn);} int main() { int kolknig; book catalog[200], *dorkniga; readcat(&kolknig, catalog); dorkniga=dorog(kolknig, catalog); printf("Most expensive book:\n"); printf("Author...........%s\n", dorkniga->author); printf("Title............%s\n", dorkniga->name); printf("Publishing year..%d\n", dorkniga->year); printf("Price............%d\n", dorkniga->price); return 0;}



Похожие презентации
Mypresentation.ru
Загрузить презентацию