• Познакомьтесь с пентестом веб-приложений на практике в нашем новом бесплатном курсе

    «Анализ защищенности веб-приложений»

    🔥 Записаться бесплатно!

  • CTF с учебными материалами Codeby Games

    Обучение кибербезопасности в игровой форме. Более 200 заданий по Active Directory, OSINT, PWN, Веб, Стеганографии, Реверс-инжинирингу, Форензике и Криптографии. Школа CTF с бесплатными курсами по всем категориям.

Пара задач на С++

  • Автор темы Guest_Julia_*
  • Дата начала
Статус
Закрыто для дальнейших ответов.
G

Guest_Julia_*

Помогите пожалуйста решить задачки на с++, а то я в этом не разбираюсь, а сессия на носу. Заранее большое спасибо.

1...Написать программу которая вычисляет частное от деления 2 чисел. Прогр должна проверять введенные числа, и если они не верны (делитель равен нулю), выдавать соощение об ошибке.

2...Во входном файле записана послед-ть натурал чисел, не превыш 1000. Послед-ть заканчив-ся числом 0. Кол-во чисел в послед-ти не превышает 100. Выведите в выходной файл кол-во чисел в послед-ти (не считая 0), а потом сами числа.
Пример:
входной файл: 1 3 5 0
выходной файл: 3
1 3 5

3... В квадратной таблице N*N подсчитать суммы чисел стоящих на диагоналях.
Входные данные. Во входном файле содержится число N (1<=N<=100), а затем матрица N*N. Эл-ты матрицы - числа из диапазона integer.
Выходные данные. В выходной файл выдать сначала сумму чисел на главной, а затем на побочной диагонали.
Пример входного файла
3
1 2 3
4 5 6
10 9 8
Пример выходного файла
14 18
 
P

proc

1.
#include <stdio.h>
void main() {
int n1, n2;
printf("Enter first number: ");
scanf("%d", &n1);
printf("Enter second number: ");
scanf("%d", &n2);
if (n2) printf("%d", n1%n2);
else printf("error");
};

2.
#include <stdio.h>
void main() {
FILE * f;
int n=1,k=0;
int a[100];
f=fopen("input.txt", "r");
if (!f) {
printf("file not found");
return;
}
while (n && !feof(f)) {
fscanf(f, "%d", &n);
a[k++]=n;
}
if (feof(f)) {
printf("error in file");
return;
}
k--;
fclose(f);
f=fopen("output.txt", "w");
fprintf(f, "%d\n", k);
while (k>-1) {
fprintf(f, "%d ", a[k--]);
}
fclose(f);
};

3.
на 3-ю просто времени нет :(
 
B

brink

или так....
1.
Код:
#include<fstream.h>
#include<stdio.h>
#include<conio.h>
#include<STDLIB.H>

int main()
{
clrscr();
int fNum, sNum;
div_t chast;
cout << "Введите первое число: ";
cin >> fNum;
cout << "\nВведите первое число: ";
cin >> sNum;
if(sNum == 0)
{
cout << "Введен неправильный делитель - " << sNum;
getch();
return 1;
}
chast = div(fNum,sNum);
cout << "Частное от деления двух чисел "<< fNum <<" и "<< sNum<< "равно" << chast.quot;
getch();
return 0;
}
2.
Код:
#include<fstream.h>
#include<stdio.h>
#include<conio.h>

int main()
{ 
int kol, buf;
clrscr(); //очищаем екран
ifstream inpt,input;
inpt.open("c:\\users\\in.txt"); //тут твой исходный файл*
if(inpt.bad()) //ошибка открытия
{
cerr << "Error read file";
return 1;
}
kol = 0;
while(!inpt.eof())
{
inpt >> buf;
if(buf != 0) //если число не 0 то добавляем +1 к количеству ел-ов
 kol++;
}
if(kol > 1000)
{
cout << "Количество ел-ов болше чем в условии. Выход.";
getch(); //ожидание нажатия клавиши
return 1;
}
inpt.close();

ofstream out;
out.open("c:\\users\\out.txt"); //тут у тя выходной файл
if(out.bad()) //ошибка открытия
{
cerr << "Error read file";
return 1;
}
out << "Количество чисел в посл-ти: ";
out << kol;
out << "\n";

input.open("c:\\users\\in.txt");
if(input.bad()) //ошибка открытия
{
cerr << "Error read file";
return 1;
}

for(int i=0; i < kol-1; i++)
{
input >> buf;
out << buf << " ";
}
input.close();//закрытие файла
out.close();
return 0;
}
3.
Код:
#include<fstream.h>
#include<stdio.h>
#include<conio.h>

int main()
{ 
int i, j, buf, N;
long int SumMaster, SumSlave;
clrscr();
ifstream inpt;
inpt.open("c:\\users\\in.txt");
if(inpt.bad()) //ошибка открытия
{
cerr << "Error read file";
return 1;
}
inpt >> buf;
if(buf < 1 || buf > 100)
{
cout << "Число елементов матрицы выходит за пределы условия";
inpt.close();
return 1;
}
N = buf;//количество елементов массива
int **A = new int*[N];//создаем двухмерный массив
for(i = 0; i < N; i++)
A[i] = new int[N];
//заносим значения квадрата в массив
for(i = 0; i < N; i++)
for(j = 0; j < N; j++)
 inpt >> A[i][j];
inpt.close();
//находим сумму главной диагонали
SumMaster = 0;
for(i = 0; i < N; i++)
for(j = 0; j < N; j++)
 if(i == j)
 SumMaster += A[i][j];
//находим сумму побочной диагонали
SumSlave = 0;
for(i = 0; i < N; i++)
for(j = 0; j < N; j++)
 if(i == N-1-j)
 SumSlave += A[i][j];
//удаление массива
for(i = 0; i < N; i++)
delete A[i];
delete A;
//вывод в файл
ofstream out;
out.open("c:\\users\\out.txt");
if(out.bad()) //ошибка открытия
{
cerr << "Error read file";
return 1;
}
out << SumMaster << " " << SumSlave;
out.close();
getch();
return 0;
}
:(
 
G

Guest

Напишите пожайлуста синтаксис функции fopen();
и если можно небольшую прогу которая открывала бы файл.
:D
 
B

brink

<!--QuoteBegin-Guest+8:05:2006, 18:12 -->
<span class="vbquote">(Guest @ 8:05:2006, 18:12 )</span><!--QuoteEBegin-->Напишите пожайлуста синтаксис функции fopen();
и если можно небольшую прогу которая открывала бы файл.
:)
[snapback]35232" rel="nofollow" target="_blank[/snapback]​
[/quote]

Код:
#include  <stdio.h>
FILE   *fopen(const  char   *filename,   const  char  *mode);

Функция fopen открывает файл с именем в виде строки, на которую ссылается указатель filename, и связывает с ним поток. Аргумент mode указывает на строку, которая определяет режим открытия. Она может содержать спецификаторы:

r                  открыть файл только для чтения
г+                открыть существующий файл для чтения и записи
а                 открыть или создать файл для записи данных в конец файла
а+               открыть или создать файл для чтения или записи в конец файла
w                 создать файл для записи
w+               создать файл для чтения и записи

К указанным спецификаторам в конце или перед символом « + » может добав­ляться символ «t» - текстовый файл, или «Ь» - бинарный, двоичный файл. На­пример, rt, rb, r+t, г+b и т.д. Если ни символ «t», ни символ «Ь» не указаны, то тип открываемого файла определяется значением глобальной переменной _fmode, определенной в файле fcntl.h. Она может принимать значения О_ТЕХТ - тексто­вый файл (по умолчанию) или O_BINARY - двоичный файл.

Вообще тоже можна прочитать и в справке...
А пример - второй пост в этом топике...

Минимальный:
Код:
#include <stdio.h>
FILE *F;
if ( (F = fopen("Test.txt", "rt")) == NULL) {
ShowMessage("Файл не удается открыть");
return; }
...    // чтение из файла 
fclose(F); // закрытие файла
;)
 
G

Guest

А можно достать где - нибудь русский MSDN. (Укажите ссылку), или хотя-бы английский, а то с microsoft`а чего-то не получается скачать.
 
Статус
Закрыто для дальнейших ответов.
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!