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

Типичные задачи по программированию

Скачать материал
Скачать материал "Типичные задачи по программированию"

Получите профессию

Методист-разработчик онлайн-курсов

за 6 месяцев

Пройти курс

Рабочие листы
к вашим урокам

Скачать

Методические разработки к Вашему уроку:

Получите новую специальность за 2 месяца

Педагог-психолог

Описание презентации по отдельным слайдам:

  • Работа над ошибками контрольной. Задача 1. Дана матрица X[0:n-1][0:m-1] и м...

    1 слайд

    Работа над ошибками контрольной.

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

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

    2 слайд

    #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]);
    }

  • void count (int k, int Y[], int n, int m, int X[][10], int Z[], int *nz)   {...

    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; /* если не первый – сравниваем с максимумом */
    }

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

    4 слайд

    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];
    }
    }
    }
    }

  • void output_c(int nc, int c[])
   { int i;
    if (nc==0) puts(&quot;No array c&quot;);...

    5 слайд

    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]);
    }
    }
    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;
    }

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

    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) //если за цифрами скобка и скобки не рядом

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

    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;
    }

  • int main ()
   {
   char str[maxln];
   int f;
   puts(&quot;input string&quot;);
   ge...

    8 слайд

    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;
    }

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

    9 слайд

    Задача 1. Дана символьная строка. Написать функцию для выделения подстрок, заключенных в комментарии /* … */ и содержащих только латинские буквы. Привести вызов функции. Вывести полученные подстроки на экран.
    Ввод данных и вывод результата осуществить в главной функции.
    Выделение подстрок оформить как отдельную функцию с параметрами.
    Задача 2. Дана символьная строка. Написать функцию для выделения подстрок, содержащих только латинские буквы и/или цифры и имеющих чётную длину. Привести вызов функции. Вывести полученные подстроки на экран.
    Домашнее задание (0.3 балла)
    Задачу 1 решают студенты с нечётными номерами вариантов по лабораторным, задачу 2 - с чётными.
    Сдача д/з на ближайшей лекции.

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








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

    10 слайд

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








    Ввести структуры в массив и найти в нем самую дорогую книгу.
    Ввод данных и поиск оформить как отдельные функции. Функция поиска вернет указатель на самую дорогую книгу.
    Книга
    Год
    Название
    Автор
    Цена

  • Рассмотрим два варианта ввода1)
	Книга # 1
	Автор................
	Название.....

    11 слайд

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

    Книга # 2
    ...


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

  • #include 

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

    12 слайд

    #include <stdio.h>

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

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

  • //Функция ввода массива структур (каталога)
void readcat(int *kol, book cat[]...

    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);
    }

  • //Функция поиска самой дорогой книги
book *dorog(int kol, book cat[])
{	int i...

    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;}

Получите профессию

Менеджер по туризму

за 6 месяцев

Пройти курс

Рабочие листы
к вашим урокам

Скачать

Скачать материал

Найдите материал к любому уроку, указав свой предмет (категорию), класс, учебник и тему:

6 626 985 материалов в базе

Скачать материал

Другие материалы

Рабочая программа "калькуляция и учет"
  • Учебник: «Организация хранения и контроль запасов и сырья. Профессиональное образование», Володина М.В., Сопачева Т.А.
  • Тема: Глава 3 КОНТРОЛЬ ЗАПАСОВ И НАЛИЧИЯ ПРОДУКТОВ
  • 02.01.2021
  • 3369
  • 8
«Организация хранения и контроль запасов и сырья. Профессиональное образование», Володина М.В., Сопачева Т.А.

Вам будут интересны эти курсы:

Оставьте свой комментарий

Авторизуйтесь, чтобы задавать вопросы.

  • Скачать материал
    • 29.08.2020 134
    • PPTX 89.5 кбайт
    • Оцените материал:
  • Настоящий материал опубликован пользователем Очирова Зоя Бадмаевна. Инфоурок является информационным посредником и предоставляет пользователям возможность размещать на сайте методические материалы. Всю ответственность за опубликованные материалы, содержащиеся в них сведения, а также за соблюдение авторских прав несут пользователи, загрузившие материал на сайт

    Если Вы считаете, что материал нарушает авторские права либо по каким-то другим причинам должен быть удален с сайта, Вы можете оставить жалобу на материал.

    Удалить материал
  • Автор материала

    Очирова Зоя Бадмаевна
    Очирова Зоя Бадмаевна
    • На сайте: 3 года и 3 месяца
    • Подписчики: 0
    • Всего просмотров: 75544
    • Всего материалов: 248

Ваша скидка на курсы

40%
Скидка для нового слушателя. Войдите на сайт, чтобы применить скидку к любому курсу
Курсы со скидкой

Курс профессиональной переподготовки

Интернет-маркетолог

Интернет-маркетолог

500/1000 ч.

Подать заявку О курсе

Курс профессиональной переподготовки

Руководство электронной службой архивов, библиотек и информационно-библиотечных центров

Начальник отдела (заведующий отделом) архива

600 ч.

9840 руб. 5900 руб.
Подать заявку О курсе

Курс повышения квалификации

Специалист в области охраны труда

72/180 ч.

от 1750 руб. от 1050 руб.
Подать заявку О курсе
  • Сейчас обучается 42 человека из 21 региона

Курс профессиональной переподготовки

Организация деятельности библиотекаря в профессиональном образовании

Библиотекарь

300/600 ч.

от 7900 руб. от 3950 руб.
Подать заявку О курсе
  • Сейчас обучается 281 человек из 66 регионов

Мини-курс

Мастерство влияния и успешных переговоров

4 ч.

780 руб. 390 руб.
Подать заявку О курсе
  • Сейчас обучается 26 человек из 15 регионов

Мини-курс

Творчество и технологии в медиакоммуникациях

8 ч.

1180 руб. 590 руб.
Подать заявку О курсе

Мини-курс

Психология обучения и развития детей: от садика до школы

4 ч.

780 руб. 390 руб.
Подать заявку О курсе
  • Сейчас обучается 26 человек из 17 регионов