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

Тема в разделе "Общие вопросы по С и С++", создана пользователем Guest_Julia_*, 17 апр 2006.

Статус темы:
Закрыта.
  1. Guest_Julia_*

    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
     
  2. proc

    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-ю просто времени нет :(
     
  3. brink

    brink Гость

    или так....
    1.
    Код (Text):
    #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.
    Код (Text):
    #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.
    Код (Text):
    #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;
    }
    :(
     
  4. Guest

    Guest Гость

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

    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]

    Код (Text):
    #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 - двоичный файл.
    Вообще тоже можна прочитать и в справке...
    А пример - второй пост в этом топике...

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

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

Поделиться этой страницей