- •1.Массивы.
- •2.Строковые массивы.
- •4.Процедура без параметров.
- •5.Процедура с параметрами.
- •6.Использование параметров-значений и параметров-переменных в качестве входных. Параметры константы.
- •7. Ограничения, наложенные на формальные и фактические параметры.
- •8.Аппарат функций.
- •9. Побочный эффект в процедурах и функциях.
- •10)Рекурсия
- •11.Опережающее описание процедур
- •12.Параметры процедурного типа:
- •13.Внешние модули, реализованные на других языках программирования. Структура основной программы, вызывающей процедуру. Присоединение текстового файла.
- •14. Структура tpu- модуля и программы.
- •15.Ссылочные типы данных, работа со связанным списком.
- •16.Ссылочные типы данных, формирование списка студентов из файла.
- •17.Поиск элемента в списке.
- •18.Исключение и добавление
- •19.Включение в список.
- •20.Типизированный файл.
- •21.Текстовые файлы
- •22.Файлы прямого доступа:
- •1.Особенности языка Си. Программа печати текста.
- •2.Программа печати таблицы с циклом «пока».
- •3.Программа печати таблицы с арифметическим циклом.
- •4.Программа печати таблицы с арифметическим циклом при использовании символических констант.
- •5.Ввод, вывод символов. Копирование файла.
- •6.Подсчет числа символов в файле
- •7.Подсчет числа строк в файле.
- •8.Подсчет числа символов, строк и слов в файле.
- •9.Подсчет числа каждой цифры, символов пустых промежутков и всех остальных символов.
- •10.Функции
- •11.Методы передачи параметров в функциях
- •12.Заполнение массива одинаковыми значениями.
5.Ввод, вывод символов. Копирование файла.
1. Ввод-вывод символов осуществляется при помощи стандартных функций.
char c=getchar();//завели переменную с типа чар, и считали в нее символ
putchar (С) ;//вывели этот символ
2.Копирование файла
# include <stdio.h>
void main(void)
{
int c=getchar(); //ввели символ
while (c!=EOF)
{
putchar(c);//вывели с
c=getchar();//считали с вновь. Таким образом, копирование закончится, когда будет достигнут конец файла
}
}
6.Подсчет числа символов в файле
# include <stdio.h>
void main(void)
{
long nc;//завели переменную nc типа long
nc=0;//инициализируем эту переменную
while (getchar()!=EOF)//пока нами не достигнут конец файлов, мы наращиваем префиксно(т.е. увеличение nc произойдет до конца текущего шага цикла)
++nc;
printf("len of string=%d\n", nc);//выводим результат
}
7.Подсчет числа строк в файле.
предполагаем, что строка заканчивается символом новой строки, т.е. нам нужно посчитать число таких символов*/
# include <stdio.h>
void main(void)
{
long nc;//завели переменную nc типа long
nc=0;//инициализируем эту переменную
while (char c=getchar()!=EOF)// пока нами не достигнут конец файла, мы выполняем проверку ниже
if (c=='\n')//там же мы инициализировали переменную с, она живет только в теле while
++nc;//так же префиксно увеличиваем число nc
printf("quantity of string's=%d\n", nc);//выводим результат
}
8.Подсчет числа символов, строк и слов в файле.
/*пусть слова у нас разделяются произвольным количеством пробелов, табуляций или символов новой строки, тогда*/
# include <stdio.h>
void main(void)
{
long nc;//завели переменную nc типа long, хранит количество строк
nc=0;//инициализируем эту переменную
long wc;//завели переменную nc типа long, хранит количество слов
wc=0;
long len;//завели переменную nc типа long, хранит количество символов
len=0;
bool swich;//переключатель, который имеет два значения - 0 или 1. Если один - мы в слове, если 0 -вне его. соответственно, нам нужно считать количество передергиваний
while (char c=getchar()!=EOF)//пока нами не достигнут конец файлов, мы выполняем проверку ниже
{
len++;
if (c=='\n')//там же мы инициализировали переменную с, она живет только в теле while
++nc;//так же префиксно увеличиваем число nc
if (c!=' '&&c!='\t'&&c!='\n')
swich=1;//это значит, что мы в слове
else
{
if (swich==1)//если у нас переключатель включен, значит, мы были в слове, и мы его выключаем. Если же будет второй пробел или другой символ,
//ничего описаннного ниже просто не произойдет
{
swich=0;
wc++;
}
}
}
printf("quantity of string's=%d\n", nc);//выводим результат
printf("quantity of word's=%d\n", wc);
printf("quantity of symbols=%d\n", len);
}
9.Подсчет числа каждой цифры, символов пустых промежутков и всех остальных символов.
# include <stdio.h>
void main(void)
{
char c;//вводимый символ
int nblanks;//счетчик пустых промежутков
int another;//счетчик остальных символов
int digits[10];//массив счетчиков цифр
int i;//переменная цикла
nblanks=another=0;
for (i=0; i<10; i++)
digits[i]=0;
while((c=getchar())!=EOF)//пока считываемый символ не является концом файла
{
if (c==' '||c=='\t'||c=='\n')//если символ - один из символов пустых промежутов, нарастили счетчик
nblanks++;
if (c>='0'&&c<='9')//если у нас одна из цифр, наращиваем соответствующий счетчик цифр. Не стоит забывать, что мы работаем с кодами,
digits[c-'0']++;//поэтому приходится отнимать от кода числа код 0, чтобы перейти к самому числу
else //т.е. это не пустой, не число, значит, какой-то левый, его-то мы и увеличим
another++;
}
printf("nblanks=%d\n",nblanks);//тут у нас просто вывод результата
printf("another=%d\n",another);
for (i=0; i<10; i++)
printf("%6d",digits[i]);//%6d значит, что на вывод числа у нас 6 позиций, выравнивание по правому краю
printf("\n");//перевод на новую строку
}