Зачетные задания по курсу "Языки программирования" и их решения.
Написать программу копирования содержимого одного файла в другой.
#include <conio.h>
#include <stdio.h>
int main(int argc, char* argv[])
{
FILE *f,*f2; // Наш файл
char ch = 0;;
if ((f = fopen("1.txt","r"))== NULL)
{
printf("(1.txt)Cannot open input file.\n"); // Не могу открыть
getch();
return 1;
}
if ((f2 = fopen("2.txt","w+"))== NULL)
{
printf("(2.txt)Cannot make output file.\n"); // Не могу создать
getch();
return 1;
}
while (!feof(f))
{
ch = fgetc(f);
if(ch == 'я') continue; // Иногда он глючит и в конце буку дописывет. Лень разбираться в чем дело ;)
fputc((int)ch,f2);
}
printf("\n\nPress key"); //Виходим
getch();
fclose(f);
fclose(f2); //Закрываем все потоки файлов.
return 0;
}
Довести размер файла до заданной длины, дописав в конец файла некоторое количество заданных символов.
#include <conio.h>
#include <stdio.h>
#include <iostream.h>
int main(int argc, char* argv[])
{
FILE *f; // Наш файл
long curpos, length;
if ((f = fopen("1.txt","a"))== NULL)
{
printf("(1.txt)Cannot open input file.\n"); // Не могу открыть
getch();
return 1;
}
curpos = ftell(f);
fseek(f, 0L, SEEK_END);
length = ftell(f); //Узнаем размер файла
fseek(f, curpos, SEEK_SET);
printf("Filesize of (1.txt) is %ld bytes\n", length);
int newz = 0;
char sym;
cout<<"Skolko Byte dopisat?\n";
cin>>newz; //Что и как вписвать
cout<<"kakie simvoli pisat?\n" ;
cin>>sym;
fseek(f, NULL, SEEK_END); // Переходим в конец файла
for(int i=0;i<newz;i++) // Дописываем скока надо и чего надо
fputc((int)sym,f);
curpos = ftell(f);
fseek(f, 0, SEEK_END); //Для проверки измеряем файл
length = ftell(f);
fseek(f, curpos, SEEK_SET);
printf("\n New Filesize of (1.txt) is %ld bytes\n", length);
printf("\n\nPress key"); //Выходим
getch();
fclose(f); //Закрываем все потоки файлов.
return 0;
}
Вывести на экран переменные окружения.
#pragma hdrstop
#pragma argsused
#include <stdlib.h>
#include <conio.h>
int main(int argc, char* argv[])
{
system("set");
// system("команда") это функция выполняющая роль доса. тоесть что ты там написал пишется в конслои ДОС
// SET - Это досвская функция показывающаа все переменные окружения ДОС и Win
// Все до бли просто.
getch();
return 0;
}
Используя библиотеку математических функций <math.h> вычислить значение функции y(x), для заданных значений аргумента x и параметра a. Результат вычислений вывести на экран. (Варианты функций y(x) приведены в файле func.doc и в файле 2__smstr.dvi 9,11,14,15,17)
#pragma hdrstop
#pragma argsused
#include <math.h>
#include <conio.h>
#include <iostream.h>
int main(int argc, char* argv[])
{
int y, x = 5, // вводишь сам
e = 1, // Мнимая единица кажись. математику не люблю я ;)
a = 4; // вводишь сам
y = (sqrt(e) + sin(a+x*M_PI) - pow((pow(x,5) + pow(a,7)),(1/3)))/(atan(cos(e * M_PI) - pow(e,-x)) + log(1 + abs(a*x)));
cout<<y; //Получай ответ
getch();
return 0;
}
Вывести на экран в виде двоичного числа код символа, введенного со стандартного ввода.
#include <conio.h>
#include <stdio.h>
#include <iostream.h>
#include <windows.h>
void out_bin(char * text,char x)
{
int i;
BYTE temp,mask=0x80;
for (i=0;i<9;i++) //Читае символ
{
temp = x&mask; //Если хочешь понять как пашет функция выучи с++ иначе не получица нихера
if (i==4) //Тетрады
*(text+i++) = ' '; //Вобщем как пашет эта функция я не знаю
if (temp) //переводит в двоичную и разбивает на тетрады тоесть по 4 симвлоа
*(text+i) = '1';
else *(text+i) = '0';
mask = mask>>1;
}
*(text+i) = '\0';
}
int main(int argc, char* argv[])
{
char x,buf[12]; //переменки
cout<<"VVedi symbol : ";
cin>>x;
out_bin(buf,x); //Юзае нашу функцию X - передаём. buf = получаем
cout<<"\n - "<<buf; //выводим
getch(); //Нафик отсюда. глупая программа
return 0;
}
Используя средства динамического распределения памяти считать в буфер заданный текстовый файл, преобразовать символы в верхний регистр и вывести на экран.
#include <iostream.h>
#include <conio.h>
int main(int argc, char* argv[])
{
char *buf;
FILE *f;
if ((f = fopen("1.txt","r"))== NULL)
{
printf("Cannot open input file.\n"); // Не могу открыть ,бля
getch();
return 1;
}
long curpos, length;
curpos = ftell(f);
fseek(f, 0L, SEEK_END);
length = ftell(f); //Узнаем размер файла
fseek(f, curpos, SEEK_SET);
printf("Filesize is %ld bytes\n", length);
buf = new char [length]; // создаем буфер для файла с его размером
fread(buf,length,1,f); //считывваем 1 блок размеров с размер файла
for(int i=0;i<length;i++) //в цикле выводим все
{
cout<<(char)toupper(buf[i]); //toupper делает заглавными
}
getch();
return 0;
}
Используя средства динамического распределения памяти считать в буфер заданный текстовый файл и подсчитать в нем количество строк, слов и символов.
#include <iostream.h>
#include <conio.h>
int main(int argc, char* argv[])
{
char *buf;
FILE *f;
int line = 0,word = 0;
if ((f = fopen("1.txt","r"))== NULL)
{
printf("Cannot open input file.\n"); // Не могу открыть ,бля
getch();
return 1;
}
long curpos, length;
curpos = ftell(f);
fseek(f, 0L, SEEK_END);
length = ftell(f); //Узнаем размер файла
fseek(f, curpos, SEEK_SET);
printf("Filesize is %ld bytes\n", length);
buf = new char [length]; // создаем буфер для файла с его размером
fread(buf,length,1,f); //считывваем 1 блок размеров с размер файла
for(int i=0;i<length;i++) //в цикле выводим все
{
if(buf[i] == ' ') word++;
if(buf[i] == '\n') line++;
}
cout<<"\n\n------------------";
cout<<"\nSymbols - "<<length;
cout<<"\nWords - "<<word+1;
cout<<"\nLines - "<<line+1;
getch();
return 0;
}
За правильность не отвечаю, писал на 1 курсе, давно, помогал знакомому. Так что если глючит, переделайте сами.
Эстетичный
Написать комментарий