courses:programming:extra_tasks

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
Next revision Both sides next revision
courses:programming:extra_tasks [2017/04/07 09:47]
pro100kot
courses:programming:extra_tasks [2020/08/27 09:51]
127.0.0.1 external edit
Line 3: Line 3:
   * <color green>​3</​color>​ Написать программу,​ которая выводит строку "HELLO WORLD!"​ на консоль.   * <color green>​3</​color>​ Написать программу,​ которая выводит строку "HELLO WORLD!"​ на консоль.
    * На вход подаются два целых числа    * На вход подаются два целых числа
-     * если они > 0 вывести их сумму+     * если ​первое больше второго, ​вывести их сумму
      * если они равны, вывести 0      * если они равны, вывести 0
-     * если они < 0 вывести их произведение.+     * если ​второе больше первого, ​вывести их произведение.
   *  <color green>​3</​color>​ Найти и вывести максимальное число из трех целых чисел (числа вводятся с консоли).   *  <color green>​3</​color>​ Найти и вывести максимальное число из трех целых чисел (числа вводятся с консоли).
   *  <color green>​3</​color>​ Заполнить значениями,​ введенными с клавиатуры,​ одномерный массив целых чисел длиной 15 и вывести эти значения на консоль.   *  <color green>​3</​color>​ Заполнить значениями,​ введенными с клавиатуры,​ одномерный массив целых чисел длиной 15 и вывести эти значения на консоль.
Line 30: Line 30:
  
  
-Задачи на массивы (в задачах следует полагать,​ что на вход программе сначала подается количество элементов N, а после - N чисел. Массив создавать ​динамически.)+Задачи на массивы (в задачах следует полагать,​ что на вход программе сначала подается количество элементов N<=100, а после - N чисел. Массив создавать ​статически.)
   * <color green>​3</​color>​ Найти разницу между максимальным и минимальным числом в этом массиве.   * <color green>​3</​color>​ Найти разницу между максимальным и минимальным числом в этом массиве.
   * <color green>​3</​color>​ Найти сумму элементов массива,​ расположенных до минимального элемента   * <color green>​3</​color>​ Найти сумму элементов массива,​ расположенных до минимального элемента
Line 120: Line 120:
 } }
 </​code>​ </​code>​
 +
 +** Пример на обзор txt файлов во вложенных папках:​**
 +<code c dir-list.c>​
 +#include <​stdio.h>​
 +#include <​string.h>​
 +
 +#include <​sys/​types.h>​
 +#include <​dirent.h>​
 +
 +void printFile(const char *path, const int lvl);
 +
 +void dirTraveler(const char *startDir, const int lvl);
 +
 +int main()
 +{
 + dirTraveler("​.",​0);​
 + return 0;
 +}
 +
 +void dirTraveler(const char *startDir, const int lvl)
 +{
 +    char path[1000];
 +    strcpy(path,​ startDir);
 +
 +    DIR *dir=opendir(path);​
 +    if(dir)
 +    {
 + struct dirent *de = readdir(dir);​
 +        while(de)
 +        {
 + if(de->​d_type == DT_REG && strstr(de->​d_name,"​.txt"​))
 + {
 + int path_len = strlen(path);​
 +                strcat(path,​ "/"​);​
 +                strcat(path,​ de->​d_name);​
 + printFile(path,​ lvl);
 +                path[path_len] = '​\0';​
 + }
 +            if(de->​d_type == DT_DIR && 0!=strcmp("​.",​ de->​d_name) && 0!=strcmp("​..",​ de->​d_name))
 +            {
 +                int path_len = strlen(path);​
 +                strcat(path,​ "/"​);​
 +                strcat(path,​ de->​d_name);​
 +                dirTraveler(path,​ lvl+1);
 +                path[path_len] = '​\0';​
 +            }
 +           de = readdir(dir);​
 +        }
 +    }
 +    closedir(dir);​
 +}
 +
 +void printFile(const char *path, const int lvl)
 +{
 + int i;
 + char s[100];
 + for(i=0;​i<​lvl;​i++)
 + printf("​\t"​);​
 + printf("​%s[\n",​ path);
 +
 + FILE *f = fopen(path, "​r"​);​
 + if(f)
 + {
 + while(fgets(s,​sizeof(s)/​sizeof(char),​f))
 + {
 + for(i=0;​i<​lvl+1;​i++)
 + printf("​\t"​);​
 + printf("​%s",​s);​
 + }
 + fclose(f);​
 + }
 +
 + for(i=0;​i<​lvl;​i++)
 + printf("​\t"​);​
 + printf("​]\n"​);​
 +}
 +</​code>​
 +
  
courses/programming/extra_tasks.txt · Last modified: 2022/12/10 09:08 (external edit)