[реклама вместо картинки]
Сделать стартовой Добавить в Избранное
Часы в заголовке окна

Форум студентов МГУ Печати ФИТиМ ИТД

Информация о пользователе

Привет, Гость! Войдите или зарегистрируйтесь.


Вы здесь » Форум студентов МГУ Печати ФИТиМ ИТД » Архив » Информатика (Сессия. I семестр)


Информатика (Сессия. I семестр)

Сообщений 21 страница 40 из 324

21

Вопрос Сергею Юрьевичу!
А вы если что,подскажите как и что тама можно сделать,и если работать вдруг не будет,ну если  не очень серьёздная ошибка,типа двоеточия ?????хотя это видно внизу ,когда компилируется,но всё ровно....

0

22

Сергей Юрьевич!!! Вопрос к Вам!
Задача 21.

// 21.cpp : Defines the entry point for the console application.
//

#include "stdafx.h"
#include <stdio.h>
void f(double A[3][4], int *minus, int *plus)
{
int i,j;
    for(i = 0; i < 3; i++)
    for(j = 0; j < 4; j++)
   
   
        if(A[i][j] > 0)
    (*plus)++;
    else
    if(A[i][j] < 0)
        (*minus)++;
}

int main(void)
{
double A[3][4];
int i, j, minus = 0, plus = 0;
printf("Enter massiv:\n");
for(i = 0;i < 3; i++)
    for(j = 0; j < 4; j++)
    scanf("%lf ",&A[i][j]);
    f(A, &minus, &plus);
    printf("polojitelnie:");
    printf("%d",plus);
    printf("otricatelnie:");
    printf("%d",minus);

return 0;
}
 

Когда вводишь матрицу через пробелы-вводится матрица 4х4.
А если тупо вводить,после каждого элемента enter,то вводится 13 элементов.
Объясните пожалуйста,что не так?

0

23

Сергей Юрьевич, вопрос № 3!

Тут у нас спор возник. Вы сказали, что на экзамене можно пользоваться всем: бомбами (собственного производства), книжками и т.д. и т.п...
...Но относится ли это к решению задач? Или это было сказано только об усном ответе?
Внесите ясность...

0

24

Кузя написал(а):

Помогите тупому ребенку!!! Подскажите что не так? ( задача 28)

О, задача оказалась хитрее, чем я думал :-)

Ваш вариант, Кузя, не работает, потому что при вычислении факториала
происходит переполнение 32-разрядной целой переменной f. Другими словами,
факториал оказывается больше, чем 2147483647 (максимальное число типа int).
При переполнении старшие биты молча обрезаются, и значение переменной может
стать вообще отрицательным.

Я сделал переменную f 64-разрядной и добавил проверку величины факториала
в цикл, в котором факториал вычисляется. После этого всё заработало:

#include "stdafx.h"
#include <stdio.h>

int klv(int A[8])
{
    int i,j,sum=0;
    long long f = 1;
    for(i=0;i<8;i++)
    {
        for(j=1;j<=A[i] && f < 1000000;j++)
        {
            f*=j;
        }
        if(f<1000000)
        {
            sum++;
        }
        f=1;
    }
    return sum;
}

int main(void)
{
    int A[8],i;
    printf("Enter massiv:\n");
    for(i=0;i<8;i++)
        scanf("%d",&A[i]);
    printf("%d",klv(A));
    return 0;
}

Кузя написал(а):

Сергей Юрьевич!!! Вопрос к Вам!
Задача 21.

НИКОГДА не пишите пробелы в форматной строке функции scanf!
Я имею в виду строчку scanf("%lf ",&A[i][j]);

Я не буду сейчас обсуждать, почему это так важно.
Интересующихся отсылаю к документации по функции scanf.

Tomka написал(а):

Вопрос Сергею Юрьевичу!
А вы если что,подскажите как и что тама можно сделать,и если работать вдруг не будет,ну если  не очень серьёздная ошибка,типа двоеточия ?????хотя это видно внизу ,когда компилируется,но всё ровно....

Я прошу прощения, но, наверное, не подскажу :-(
Дело в том, что степень серьёзности ошибки - величина субъективная.

F1aSh написал(а):

Сергей Юрьевич, вопрос № 3!

Тут у нас спор возник. Вы сказали, что на экзамене можно пользоваться всем: бомбами (собственного производства), книжками и т.д. и т.п...
...Но относится ли это к решению задач? Или это было сказано только об усном ответе?
Внесите ясность...

Да-да, при решении задач тоже можно будет пользоваться любыми бумажными материалами.
Правда, не стоит особенно расчитывать на то, что эти материалы Вам существенно помогут.
Лучшая подготовка к решению задач - это решение задач в большом количестве :-)

0

25

Да-да, при решении задач тоже можно будет пользоваться любыми бумажными материалами.
Правда, не стоит особенно расчитывать на то, что эти материалы Вам существенно помогут.
Лучшая подготовка к решению задач - это решение задач в большом количестве :-)

Отлично!  :dance:
Просто, так - перестраховаться...

0

26

Спасибо,Сергей Юрьевич.
Кстати, к Вам претензии! :D
Я тута выяснила что Вы забыли нам сказать важную вещь,на которую,я думаю, большинство внимание не обращают,но из-за которой я мучалась над правильной задачей около получаса! Точнее Вы не акцентировали на ней наше внимание..
Так вот,всем кто еще не понял,желательно каждый раз заморачиваться и обнулять массивы(особенно если они пустые и потом при выполнении ф-ии в них перемещаются какие-то значения) и инициализировать или тоже обнулять переменные.
В большинстве случаев программа у вас работает и без этого...Но если попадется в памяти фигня какая-нить..Ой как мучаться будете..По собственному опыту говорю!

Сергей Юрьевич,поправьте меня,если я где ошибаюсь. И наверняка есть еще какие-то моменты,которые мы упустили!(это намек :D )

Скоробогатов написал(а):

Да-да, при решении задач тоже можно будет пользоваться любыми бумажными материалами.
Правда, не стоит особенно расчитывать на то, что эти материалы Вам существенно помогут.
Лучшая подготовка к решению задач - это решение задач в большом количестве :-)

Никто не спорит,но не сомневаюсь что склеротиков у нас в группе хватает!(не в обиду) :lol: Так что тетр очень может пригодиться! :D

Отредактировано Кузя (2007-01-03 11:30:27)

0

27

Кузя написал(а):

Спасибо,Сергей Юрьевич.
Кстати, к Вам претензии!

Претензии - это хорошо :-)
Это значит, что Вы готовитесь к экзамену, чего нельзя сказать об остальных, у которых претензий ещё не появилось.
Кстати, о том, что неинициализированные переменные содержат мусор, я говорил неоднократно.

Кузя написал(а):

желательно каждый раз заморачиваться и обнулять массивы(особенно если они пустые и потом при выполнении ф-ии в них перемещаются какие-то значения) и инициализировать или тоже обнулять переменные.

Угу, только "правило Кузи" лучше переформулировать следующим образом:

Если вы используете (читаете) значение некоторой ячейки памяти, будь то переменная, элемент массива или поле структуры, вы должны быть уверены, что этой ячейке памяти уже было присвоено значение.

Другими словами, инициализировать (обнулять) переменные или элементы массивов нужно только в том случае, если вы собираетесь использовать значения этих переменных и элементов (то есть читать из них).

Например, в следующем фрагменте программы обнуление элементов массива явно лишнее, потому что элементы массива затем получают значения, введенные пользователем с клавиатуры:

int main(void)
{
    int Q[10], i;

    /* Обнуление элементов массива */
    for (i = 0; i < 10; i++)
        Q[i] = 0;

    /* Ввод массива с клавиатуры */
    for (i = 0; i < 10; i++)
        scanf("%d",&Q[i]);

    /* Дальше идёт нечто... */
    ...

    return 0;
}

Кузя написал(а):

В большинстве случаев программа у вас работает и без этого...Но если попадется в памяти фигня какая-нить..Ой как мучаться будете..По собственному опыту говорю!

Вот! Самое важное в нашем деле - это приобретение опыта через решение большого количества задач.
Можно сто раз изучить что-то в теории, но настоящее понимание приходит только в процессе применения полученных знаний на практике.

0

28

Скоробогатов написал(а):

Кстати, о том, что неинициализированные переменные содержат мусор, я говорил неоднократно.

Что правда, то правда...  :yes:

0

29

Скоробогатов написал(а):

Кстати, о том, что неинициализированные переменные содержат мусор, я говорил неоднократно.

Согласна. я слышала не раз. Тока вряд ли слышали все и если слышали-не факт что заострили на этом внимание!

0

30

Ну, по-большему счету, это уже их проблемы...  :/

0

31

Сергей Юрьевич... ну или просто те, кто знаком с этой проблемой! Технический вопрос.

При компеляции программы, или просто при нажатии на Build, Visual Studio виснет. Причем происходит это довольно часто. В чем может быть проблема? Явно не в прогрммном коде. Потому что после перезапуска, компилятор работает нормально... Просто это уже порядком поднадоело.

:pardon:

0

32

F1aSh написал(а):

При компеляции программы, или просто при нажатии на Build, Visual Studio виснет. Причем происходит это довольно часто.

Я использую Visual Studio 2005 с декабря 2005 года.
Более того, она установлена в Бауманке в двух залах.
За всё это время подвисаний замечено не было.

К сожалению, Вы не указали ни версии Windows, ни account, под которым работаете.
Поэтому я предполагаю, что у Вас Windows XP и работаете Вы как Admistrator.
В этом случае единственное, что я могу посоветовать - это проверить компьютер на вирусы.

0

33

У меня так же, у меня так же!!...  :cray:  :help:

0

34

Kit, обращайтесь к терапевту Dr.Web'у.
Если не поможет, переустановите Windows.

В крайнем случае установите Pelles C (7.15 Mb) и не мучайтесь :-)

0

35

Сергей Юрьевич, а борландовский компилятор лучше/хуже VS?

0

36

К сожалению, Вы не указали ни версии Windows, ни account, под которым работаете.
Поэтому я предполагаю, что у Вас Windows XP и работаете Вы как Admistrator.

Windows Vista XP SP1. Работаю как администратор. Visual Studio v.6.0 (взята с локалки)  :D

Kit, обращайтесь к терапевту Dr.Web'у.

Я обращался к доктору Касперскому (последние обновления и бла, бла, бла), но он ничем не помог...

а борландовский компилятор лучше/хуже VS?

Вроде как говорили, что он потупее будет...

0

37

Вопрос.
Для того чтобы найти числа в строке,как их надо записать,чтоб они не воспринимались как коды букв?
(надеюсь понятно сформулировала.. :( )
(в частности вопрос касается 20 задачи...)

Отредактировано Кузя (2007-01-05 12:48:00)

0

38

У меня Visual Studio постоянно глючил, несколько раз уже переустанавливала. Потом решила установить  Pelles C ! ВСе окей ;)

0

39

У меня Visual Studio постоянно глючил, несколько раз уже переустанавливала. Потом решила установить  Pelles C ! ВСе окей

Мда?.. Я вот думаю мож тоже его поставить... Правда я им пользовался уже. Ну неудобный он какой-то!

0

40

Кузя написал(а):

Для того чтобы найти числа в строке,как их надо записать,чтоб они не воспринимались как коды букв?
(надеюсь понятно сформулировала.. :( )
(в частности вопрос касается 20 задачи...)

Насколько я понял, Вы спрашиваете, как найти цифры в строке, а не числа.
Если есть строка s, то чтобы определить, является ли её i-тый элемент цифрой,
надо выполнить проверку
    if (s[i] >= '0' && s[i] <= '9')
Если вопрос касается того, как перевести цифру в строке в число, то это можно сделать
путём вычитания из цифры константы '0':
    int num = s[i] - '0';

Jasstina написал(а):

Сергей Юрьевич, а борландовский компилятор лучше/хуже VS?

Борландовый - значительно хуже.
А если Вы имеете в виду Borland C++ 3.1, то он в настоящее время вообще никуда не годится.

F1aSh написал(а):

Я обращался к доктору Касперскому (последние обновления и бла, бла, бла), но он ничем не помог...

Переустановите Windows и поставьте Visual Studio 2005.
Никогда не работайте как Administrator.

Отредактировано Скоробогатов (2007-01-05 13:52:56)

0


Вы здесь » Форум студентов МГУ Печати ФИТиМ ИТД » Архив » Информатика (Сессия. I семестр)