Студентам с лабораторными сюда (архивная - 2015)

Discussion in 'С/С++, C#, Rust, Swift, Go, Java, Perl, Ruby' started by _Great_, 20 Jun 2007.

Thread Status:
Not open for further replies.
  1. innlife

    innlife New Member

    Joined:
    27 Mar 2012
    Messages:
    3
    Likes Received:
    0
    Reputations:
    0
    visual c++
    Привет всем! Суть лабы: задается размер матрицы, заполняется рандомными числами. Нужно все диагонали матрицы упорядочить по возрастанию пятью сортировками и посчитать количество сравнений и перестановок каждым методом.
    Пример сортировки:

    1 1 1 1 1
    1 2 2 2 2
    1 2 3 3 3
    1 2 3 4 4

    PHP:
    // sorting.cpp : Defines the entry point for the console application.
    //

    #include "stdafx.h"
    #include <conio.h>
    #include <iostream>
    #include <stdlib.h>
    #include <time.h>
    #include <Windows.h>

    using namespace std;

        
    void arraySending(intAint Nint M)
        {
            for(
    int i 1N+M-2i++)
            {

            }
        }

    //Разбор матрицы по одномерным массивам
        
    void arrayParsing(int **Aint **Bint Nint M)
        {
            
    //Разбор
            
    for(int i 1N+M-2i++)
            {
                if(
    N)
                {
                    
    int count 0;
                    
    int row N-1-i;
                    
    int column 0;
                    while(
    row N)
                    {
                        
    cout << "\n i = " << i-<< "\n count = " << count << "\n row =" << row << "\n column = " << column << "\n***";
                        
    B[i-1][count]=A[row][column];
                        
    row++;
                        
    column++;
                        
    count++;
                    }
                }
                else
                {
                    
    int count 0;
                    
    int row 0;
                    
    int column i+1-N;
                    while((
    row N) && (column M))
                    {
                        
    B[i-1][count]=A[row][column];
                        
    cout << B[i-1][count] << "\n";
                        
    row++;
                        
    column++;
                        
    count++;
                    }
                }
            }
        }

    //Отображение массива
        
    void arrayShow(int **Aint Nint M)
        {
            
    cout << endl << endl;
            for (
    int i=0i<Ni++)
                for (
    int j=0;j<M;j++)
                {
                    if (!(
    j%M))
                        
    cout<<endl//Чтобы массив выглядел как массив
                    
    cout << A[i][j] << '\t' //Табуляция символов
                
    }
        }

    //Инициализация массива случайными значениями
        
    void arrayInit(int **A,int N,int M)
        {
            
    srand(time(0));
            for (
    int i=0;i<N;i++)
                for (
    int j=0;j<M;j++)     
                    
    A[i][j]=rand()%(100);   //Случайное значение в очередную ячейку массива
        
    }

    void main()
    {
        
    system("cls");
        
    int **A//Для создания двумерного массива удобен указатель на указатель
        
    int** B//
        
    int N,M//Число колонок=N, Число строк= M
        
    cin>>N>>M//Ввели размерность массива

        //for (int k=0; k<10;k++){ Может кому нужно циклом
        
        /*Создание динамического двумерного массива*/
        
    A=new int*[N];
        for (
    int i=0;i<N;i++) 
            
    A[i]=new int[M];

        
    arrayInit(A,N,M); //Функция создания массива
        
    arrayShow(A,N,M); //Функция обработки массива 
        
        //Инициализация динамик массив для разбора
        
    B=new int*[N+M-2];
        for (
    int i 0i<Ni++) 
        
    B[i]=new int[M];
        
    /*for(int i = 0; i < N; i++)
            for(int j = 0; j < M; j++)
                B[i][j]=A[i][j];*/

        
    arrayParsing(ABNM);
        
    arrayShow(B,N,M);
        
    /*Очистка памяти от созданного двумерного массива*/
            
    for (int i=0;i<N;i++) 
            
    delete []A[i];
            
    delete []A;
            
    A=NULL;

            for (
    int i=0;i<N;i++) 
            
    delete []B[i];
            
    delete []B;
            
    B=NULL;
        
    //}   окончание цикла for
           
    getch();
         return;
    }
    Единственное, что мне пришло в голову, это разобрать диагонали в строки, и упорядочить уже одномерные массивы, а после вставить обратно. В представленном мною коде как раз не работает алгоритм разбора диагоналей в линии, но не во всех случаях. 3 x 3 например работает. А 2 x 6 ошибка Unhandled exception at 0x00e7171e in sorting.exe: 0xC0000005: Access violation writing location 0xcdcdcdcd. Подскажите почему, и может есть костыли проще?
     
    #4121 innlife, 1 Oct 2012
    Last edited: 1 Oct 2012
  2. Тигрёк

    Тигрёк New Member

    Joined:
    29 Sep 2012
    Messages:
    1
    Likes Received:
    0
    Reputations:
    0
    C++

    Помогите пожалуйста написать программу для задачи:
    Создать класс Money для работы с денежными суммами.
    Число должно быть представлено двумя полями: типа long int
    для рублей и типа int – для копеек. Дробная часть (копейки) при
    выводе на экран должна быть отделена от целой части запятой.
    Реализовать сложение, вычитание, деление сумм, деление суммы
    на дробное число, умножение на дробное число и операция сравнения.
    На С++
     
  3. Compton

    Compton Member

    Joined:
    31 Jan 2010
    Messages:
    290
    Likes Received:
    25
    Reputations:
    0
    Нужно на паскале
    найти все трехзначные числа,которые при увеличении на 1,делятся на два,при увеличении на два,делятся на три,при увеличении на три,делятся на 4,при увеличении на 4,делятся на 5
     
    #4123 Compton, 10 Oct 2012
    Last edited: 10 Oct 2012
  4. raolin

    raolin New Member

    Joined:
    19 Oct 2006
    Messages:
    13
    Likes Received:
    0
    Reputations:
    0
    Нужно сделать на паскале:
    1.составьте программу, которая строит из N знаков "*", M знаков "!". Числа N и M задаются с клавиатуры.

    2.составьте программу, которая определяет сколько раз встречаются числа X, Y, X-Y, X+Y в последовательности из 50 заданных чисел. Данные задаются с клавиатуры в таком порядке X, Y и 50чисел последовательности.

    3.Составьте программу, которая выводит ряд из n чисел вида 2,4,6,...,2n через запятую,где n задается с клавиатуры. Например: при n=5 ответ 2,4,6,8,10
    Спасибо!
     
    #4124 raolin, 12 Oct 2012
    Last edited: 13 Oct 2012
  5. funbuff

    funbuff New Member

    Joined:
    26 Oct 2010
    Messages:
    4
    Likes Received:
    0
    Reputations:
    0
    TASM 5 (предпочтительно) или С++

    Язык TASM(предпочтительно) или С++ под Win

    Нужно написать утилитку, организующую вывод на печать текущей директории. :confused: нужен код, я даже не знаю с чего начать. Помогите пожалуйста.


    Кто сделает - перечислю небольшую денежку на кошелек.
     
    #4125 funbuff, 16 Oct 2012
    Last edited: 19 Oct 2012
  6. mafi0zy

    mafi0zy New Member

    Joined:
    21 Jul 2010
    Messages:
    0
    Likes Received:
    0
    Reputations:
    0
    Создать консольную программу

    [​IMG]
     
  7. mechanik29

    mechanik29 New Member

    Joined:
    20 Aug 2012
    Messages:
    0
    Likes Received:
    0
    Reputations:
    0
    Три задачи на Delphi.Циклический оператор.

    Помогите пожалуйста.нужно решить вот эти три задачи на Delphi.Циклический оператор.(Каждый пример с постусловием и с предусловием).
    Кто сделает, тому перечислю небольшую денежку на кошелек.

    [​IMG]
    [​IMG]
    [​IMG]
    [​IMG]
     
  8. НTL

    НTL Elder - Старейшина

    Joined:
    26 Jan 2008
    Messages:
    715
    Likes Received:
    205
    Reputations:
    -26
    В общем у меня возникла небольшая проблема с учебой...

    От меня требуется написать программу на асеме. Суть программы:
    Консольное приложение
    Ввод через консоль
    Запрос числа a и b
    Сделать некоторые операции над этими числами, например add
    Вывод результата обратно в консоль

    Прошу вашей помощи...
     
  9. citrucc

    citrucc New Member

    Joined:
    6 Apr 2012
    Messages:
    4
    Likes Received:
    0
    Reputations:
    0
    Однонаправленный линейный список

    Добрый день нужна помощь в написании программы на с++.

    Надо создать однонаправленный линейный список при помощи 2 массивов. 1 массив содержит данные а второй указатели на эти данные. После надо реализовать 4 функции .
    1. Вывод списка
    2. Сортировка по возрастанию
    3. добавление нового элемента после элемента совпадающего с вводимым с клавиатуры номером если таково номера нет то добавлять в начало.
    4. добавление 3 элементов после 2 элемента в списке.

    Буду признателен за любую помощь сам на с++ тока учусь и с указателями встречаюсь редко.
     
  10. Halker

    Halker New Member

    Joined:
    28 Oct 2012
    Messages:
    1
    Likes Received:
    0
    Reputations:
    0
    Доброго времени суток !
    Очень нужна помощь в написание программы в среде Delphi .
    Буду очень благодарен! Заранее Спасибо!
    Составить программу, в которой организованы следующие действия: сортировка массива слов по алфавиту; выборка из массива слов, начинающихся с гласных; выборка из массива слов, начинающихся с согласных. Эти действия оформлены в подпрограммах. Обеспечить пользователю возможность выбирать нужную ему подпрограмму через интерфейс управления.Составить программу, в которой организованы следующие действия: сортировка массива слов по алфавиту; выборка из массива слов, начинающихся с гласных; выборка из массива слов, начинающихся с согласных. Эти действия оформлены в подпрограммах. Обеспечить пользователю возможность выбирать нужную ему подпрограмму через интерфейс управления.
     
  11. denis0174

    denis0174 New Member

    Joined:
    21 Oct 2012
    Messages:
    3
    Likes Received:
    0
    Reputations:
    0
    Дано натуральное k. Вывести k цифру последовательности (квадраты натуральных чисел) 149162536 ...
    помогите написать на dev с++
     
  12. Null_Name

    Null_Name Banned

    Joined:
    18 Oct 2011
    Messages:
    240
    Likes Received:
    79
    Reputations:
    18
    добрый вечер.
    помогите пожалуйста с решением задачи на Pascal, за символическую плату.
     
  13. masterlights

    masterlights New Member

    Joined:
    20 Oct 2011
    Messages:
    41
    Likes Received:
    0
    Reputations:
    0
    Задача на Паскале

    вывести на экран сумму элементов массива больше заданного числа

    код, который дали, но он не работает
    Code:
    program zadacha2; {amount}
    var
    A: array [1..100] of integer;
    i,n,mas,sum: integer;
    begin
          writeln ('Число элементов массива');
          readln (n);
          writeln ('Введите массив:');
          for i:=1 to n do
          readln (mas [i]);
          writeln('Введите число А:');
          readln(a);
          sum:=0;
          for i:=1 to n do
          if mas [i]>a
          then sum:=sum+mas [i];
          writeln ('Сумма элементов, больших числа',a,':',sum );
          readln;
          end.
    
     
    с паскале только в шк писал, как с нуля ща смотрю)
    надо быстренько сделать, кто шарит - это 5 сек.
    спасибо)
     
  14. FunOfGun

    FunOfGun Elder - Старейшина

    Joined:
    5 Sep 2012
    Messages:
    388
    Likes Received:
    72
    Reputations:
    124
    http://ideone.com/jVLI11
     
  15. Kapon

    Kapon New Member

    Joined:
    5 Feb 2012
    Messages:
    0
    Likes Received:
    3
    Reputations:
    0
    program kapon;
    uses crt;
    var i,k,b:integer;
    a:array[1..10] of integer;
    Begin
    clrscr;
    for i:=1 to 10 do
    begin
    writeln('Zabey masiv');
    readln(a);
    end;
    writeln('Vvedite kontrolnoe chislo');
    readln(b);
    k:=0;
    for i:=1 to 10 do
    begin
    if (a>b) then
    k:=k+a;
    end;
    writeln(k);
    readln;
    End.
     
  16. muip

    muip New Member

    Joined:
    1 Sep 2011
    Messages:
    45
    Likes Received:
    4
    Reputations:
    0
    Лучше так:

    Code:
    uses crt;
    var 
     i,k,b:integer;
     a:array[1..10] of integer;
    Begin
     clrscr;
     randomize;
     for i:=1 to 10 do a[i]:=random(40);
     writeln('Vvedite kontrolnoe chislo');
     readln(b);
     k:=0;
     for i:=1 to 10 do
      begin
       if (a[i]>b) then 
       k:=k+a[i];
      end;
     writeln(k);
     End.
    
     
  17. Kapon

    Kapon New Member

    Joined:
    5 Feb 2012
    Messages:
    0
    Likes Received:
    3
    Reputations:
    0
    Без разницы. Тут смотря что от него требуют. Обычно к заданиям идут листы с проверками и учитель говорит какие числа забивать. Рандомно тоже можно в случае если нужно отладка программы и нет желания вбивать всё по сто раз.
     
  18. FunOfGun

    FunOfGun Elder - Старейшина

    Joined:
    5 Sep 2012
    Messages:
    388
    Likes Received:
    72
    Reputations:
    124
    IdeOne же, зайди по моей ссылке и увидешь данные, на которых прогу тестил я. И ничего не надо ни ставить, ни вбивать по 100 раз.
     
  19. muip

    muip New Member

    Joined:
    1 Sep 2011
    Messages:
    45
    Likes Received:
    4
    Reputations:
    0
    В этом примере ограничение массива до 100, а если ввести n больше 100, как число элементов массива, в итоге чего критическая ошибка.
     
  20. Dragon71421

    Dragon71421 New Member

    Joined:
    10 Oct 2012
    Messages:
    7
    Likes Received:
    0
    Reputations:
    0
    Надо поменять местами переменные А и mas. Тогда mas будет массивом, а А будет числом, которое мы вводим.
     
Thread Status:
Not open for further replies.