Вопрос Сергею Юрьевичу!
А вы если что,подскажите как и что тама можно сделать,и если работать вдруг не будет,ну если не очень серьёздная ошибка,типа двоеточия ?????хотя это видно внизу ,когда компилируется,но всё ровно....
Информатика (Сессия. I семестр)
Сообщений 21 страница 40 из 324
Поделиться212007-01-02 20:25:48
Поделиться222007-01-02 21:46:12
Сергей Юрьевич!!! Вопрос к Вам!
Задача 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 элементов.
Объясните пожалуйста,что не так?
Поделиться232007-01-02 22:30:41
Сергей Юрьевич, вопрос № 3!
Тут у нас спор возник. Вы сказали, что на экзамене можно пользоваться всем: бомбами (собственного производства), книжками и т.д. и т.п...
...Но относится ли это к решению задач? Или это было сказано только об усном ответе?
Внесите ясность...
Поделиться242007-01-02 23:13:04
Помогите тупому ребенку!!! Подскажите что не так? ( задача 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.
Вопрос Сергею Юрьевичу!
А вы если что,подскажите как и что тама можно сделать,и если работать вдруг не будет,ну если не очень серьёздная ошибка,типа двоеточия ?????хотя это видно внизу ,когда компилируется,но всё ровно....
Я прошу прощения, но, наверное, не подскажу
Дело в том, что степень серьёзности ошибки - величина субъективная.
Сергей Юрьевич, вопрос № 3!
Тут у нас спор возник. Вы сказали, что на экзамене можно пользоваться всем: бомбами (собственного производства), книжками и т.д. и т.п...
...Но относится ли это к решению задач? Или это было сказано только об усном ответе?
Внесите ясность...
Да-да, при решении задач тоже можно будет пользоваться любыми бумажными материалами.
Правда, не стоит особенно расчитывать на то, что эти материалы Вам существенно помогут.
Лучшая подготовка к решению задач - это решение задач в большом количестве
Поделиться252007-01-02 23:33:00
Да-да, при решении задач тоже можно будет пользоваться любыми бумажными материалами.
Правда, не стоит особенно расчитывать на то, что эти материалы Вам существенно помогут.
Лучшая подготовка к решению задач - это решение задач в большом количестве
Отлично! :dance:
Просто, так - перестраховаться...
Поделиться262007-01-03 11:19:45
Спасибо,Сергей Юрьевич.
Кстати, к Вам претензии!
Я тута выяснила что Вы забыли нам сказать важную вещь,на которую,я думаю, большинство внимание не обращают,но из-за которой я мучалась над правильной задачей около получаса! Точнее Вы не акцентировали на ней наше внимание..
Так вот,всем кто еще не понял,желательно каждый раз заморачиваться и обнулять массивы(особенно если они пустые и потом при выполнении ф-ии в них перемещаются какие-то значения) и инициализировать или тоже обнулять переменные.
В большинстве случаев программа у вас работает и без этого...Но если попадется в памяти фигня какая-нить..Ой как мучаться будете..По собственному опыту говорю!
Сергей Юрьевич,поправьте меня,если я где ошибаюсь. И наверняка есть еще какие-то моменты,которые мы упустили!(это намек )
Да-да, при решении задач тоже можно будет пользоваться любыми бумажными материалами.
Правда, не стоит особенно расчитывать на то, что эти материалы Вам существенно помогут.
Лучшая подготовка к решению задач - это решение задач в большом количестве
Никто не спорит,но не сомневаюсь что склеротиков у нас в группе хватает!(не в обиду) Так что тетр очень может пригодиться!
Отредактировано Кузя (2007-01-03 11:30:27)
Поделиться272007-01-03 16:27:14
Спасибо,Сергей Юрьевич.
Кстати, к Вам претензии!
Претензии - это хорошо
Это значит, что Вы готовитесь к экзамену, чего нельзя сказать об остальных, у которых претензий ещё не появилось.
Кстати, о том, что неинициализированные переменные содержат мусор, я говорил неоднократно.
желательно каждый раз заморачиваться и обнулять массивы(особенно если они пустые и потом при выполнении ф-ии в них перемещаются какие-то значения) и инициализировать или тоже обнулять переменные.
Угу, только "правило Кузи" лучше переформулировать следующим образом:
Если вы используете (читаете) значение некоторой ячейки памяти, будь то переменная, элемент массива или поле структуры, вы должны быть уверены, что этой ячейке памяти уже было присвоено значение.
Другими словами, инициализировать (обнулять) переменные или элементы массивов нужно только в том случае, если вы собираетесь использовать значения этих переменных и элементов (то есть читать из них).
Например, в следующем фрагменте программы обнуление элементов массива явно лишнее, потому что элементы массива затем получают значения, введенные пользователем с клавиатуры:
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;
}
В большинстве случаев программа у вас работает и без этого...Но если попадется в памяти фигня какая-нить..Ой как мучаться будете..По собственному опыту говорю!
Вот! Самое важное в нашем деле - это приобретение опыта через решение большого количества задач.
Можно сто раз изучить что-то в теории, но настоящее понимание приходит только в процессе применения полученных знаний на практике.
Поделиться282007-01-03 20:52:20
Кстати, о том, что неинициализированные переменные содержат мусор, я говорил неоднократно.
Что правда, то правда... :yes:
Поделиться292007-01-03 21:28:33
Кстати, о том, что неинициализированные переменные содержат мусор, я говорил неоднократно.
Согласна. я слышала не раз. Тока вряд ли слышали все и если слышали-не факт что заострили на этом внимание!
Поделиться302007-01-03 21:49:49
Ну, по-большему счету, это уже их проблемы... :/
Поделиться312007-01-04 22:37:37
Сергей Юрьевич... ну или просто те, кто знаком с этой проблемой! Технический вопрос.
При компеляции программы, или просто при нажатии на Build, Visual Studio виснет. Причем происходит это довольно часто. В чем может быть проблема? Явно не в прогрммном коде. Потому что после перезапуска, компилятор работает нормально... Просто это уже порядком поднадоело.
:pardon:
Поделиться322007-01-04 23:56:14
При компеляции программы, или просто при нажатии на Build, Visual Studio виснет. Причем происходит это довольно часто.
Я использую Visual Studio 2005 с декабря 2005 года.
Более того, она установлена в Бауманке в двух залах.
За всё это время подвисаний замечено не было.
К сожалению, Вы не указали ни версии Windows, ни account, под которым работаете.
Поэтому я предполагаю, что у Вас Windows XP и работаете Вы как Admistrator.
В этом случае единственное, что я могу посоветовать - это проверить компьютер на вирусы.
Поделиться332007-01-04 23:56:33
У меня так же, у меня так же!!... :cray: :help:
Поделиться342007-01-05 00:23:12
Kit, обращайтесь к терапевту Dr.Web'у.
Если не поможет, переустановите Windows.
В крайнем случае установите Pelles C (7.15 Mb) и не мучайтесь
Поделиться352007-01-05 04:25:23
Сергей Юрьевич, а борландовский компилятор лучше/хуже VS?
Поделиться362007-01-05 11:20:17
К сожалению, Вы не указали ни версии Windows, ни account, под которым работаете.
Поэтому я предполагаю, что у Вас Windows XP и работаете Вы как Admistrator.
Windows Vista XP SP1. Работаю как администратор. Visual Studio v.6.0 (взята с локалки)
Kit, обращайтесь к
терапевтуDr.Web'у.
Я обращался к доктору Касперскому (последние обновления и бла, бла, бла), но он ничем не помог...
а борландовский компилятор лучше/хуже VS?
Вроде как говорили, что он потупее будет...
Поделиться372007-01-05 12:44:41
Вопрос.
Для того чтобы найти числа в строке,как их надо записать,чтоб они не воспринимались как коды букв?
(надеюсь понятно сформулировала.. )
(в частности вопрос касается 20 задачи...)
Отредактировано Кузя (2007-01-05 12:48:00)
Поделиться382007-01-05 12:53:20
У меня Visual Studio постоянно глючил, несколько раз уже переустанавливала. Потом решила установить Pelles C ! ВСе окей
Поделиться392007-01-05 12:55:45
У меня Visual Studio постоянно глючил, несколько раз уже переустанавливала. Потом решила установить Pelles C ! ВСе окей
Мда?.. Я вот думаю мож тоже его поставить... Правда я им пользовался уже. Ну неудобный он какой-то!
Поделиться402007-01-05 13:14:06
Для того чтобы найти числа в строке,как их надо записать,чтоб они не воспринимались как коды букв?
(надеюсь понятно сформулировала.. )
(в частности вопрос касается 20 задачи...)
Насколько я понял, Вы спрашиваете, как найти цифры в строке, а не числа.
Если есть строка s, то чтобы определить, является ли её i-тый элемент цифрой,
надо выполнить проверку
if (s[i] >= '0' && s[i] <= '9')
Если вопрос касается того, как перевести цифру в строке в число, то это можно сделать
путём вычитания из цифры константы '0':
int num = s[i] - '0';
Сергей Юрьевич, а борландовский компилятор лучше/хуже VS?
Борландовый - значительно хуже.
А если Вы имеете в виду Borland C++ 3.1, то он в настоящее время вообще никуда не годится.
Я обращался к доктору Касперскому (последние обновления и бла, бла, бла), но он ничем не помог...
Переустановите Windows и поставьте Visual Studio 2005.
Никогда не работайте как Administrator.
Отредактировано Скоробогатов (2007-01-05 13:52:56)