Часовой пояс: UTC + 3 часа




Начать новую тему Новая тема / Ответить на тему Ответить  Сообщений: 938 • Страница 35 из 47<  1 ... 32  33  34  35  36  37  38 ... 47  >
  Пред. тема | След. тема 
В случае проблем с отображением форума, отключите блокировщик рекламы
Автор Сообщение
 

Member
Статус: Не в сети
Регистрация: 10.12.2007
Откуда: Санкт-Петербург
stak5 писал(а):
Объясните плз как решить вот такое :
Упростите логическое выражение и напишите правильный ответ, используя логические функции и значения в их английском написании: not, and, or, true, false, A, B.
(A and B) or (not A) and B or A and (not B)


Входной файл input.txt
Выходной файл output.txt
Ограничение по времени 2 сек.
С числом n проделывают следующие действия: если оно четное, то делят его на два, а если нечетное — то отнимают от него один и увеличивают на один счетчик s. Эти действия повторяют, пока n больше нуля. Определите, чему будет равен счетчик s, когда n станет равно нулю.
Формат входных данных
Во входном файле записано одно целое число, (0 ≤ n ≤ 1000).
Формат выходных данных
Выведите одно число — значение счетчика s.
Пример:
input.txt output.txt
11 3


Логическое выражение: необходимо начертить таблицу истинности всего выражения( подсчитать кол - во переменных в логическом выражении, затем найти число строк в таблице( =2 в степени n, где n количество переменных в выражении), подсчитать кол - во операций( кол - во переменных + кол - во операций=кол - во столбцов), затем назвать столбцы в соответствии с последовательностью выполнения операций( учитывая скобки и приоритеты), заполнить наборами входных значений(1,0) и заполнить по столбцам).
Приоритетность выполнения:
Not
And
Or
Импликация
Эквивалентность
Чтобы заполнить таблицу истинности всего выражения, необходимо знать таблицы истинности логич. операций:
and: (конъюнкция):
A B A and B
0 0 0
1 0 0
0 1 0
1 1 1
or: (дизъюнкция)
A B A or B
0 0 0
1 0 1
0 1 1
1 1 1
not: (инверсия)
A not A
0 1
1 0
Добавлено спустя 17 минут, 28 секунд

_________________
Семь бед, один Reset. 95, 98 - это количество багов. В пpоцентах...
DCN - наше все



Партнер
 

Member
Статус: Не в сети
Регистрация: 08.12.2005
Откуда: Питер!
sashar2
Есть ещё одна просьба, можешь помочь с очередью? Тоесть эту програмку надо сделать в общем виде, не используя классы(class)..
И ещё вопросик - как ты в этой програмке при удалении элемента из очереди, сохранял/запоминал его?(ну чтобы данные не потерять)..
Очеееень прошу, пожалста!! :beer: 3 лабы сам сдал, вот ещё эту надо..


 

Member
Статус: Не в сети
Регистрация: 23.07.2005
Откуда: Екатеринбург
Люди! Помогите решить еще одну задачу!
Надо вычислить расстояние между точкой и отрезком в трехмерном пространстве. Используя скалярное произведение.
Дайте хотя бы идею и формулу скалярного произведения =)
Просто не успеваю с этой задачей из-за предудущей. :(


 

Member
Статус: Не в сети
Регистрация: 05.12.2005
MW!
Не понял, почему в общем виде - это считается без класса. Но если тебе нужно без него, то просто убери класс. Код конструктора в начало программы, например, main. Код деструктора в конец. Приватный член класса будет просто вынесен на общий доступ, ну и всё, получиться программа без класса. Но это как-то не красиво....
MW! писал(а):
И ещё вопросик - как ты в этой програмке при удалении элемента из очереди, сохранял/запоминал его?(ну чтобы данные не потерять)..

Это тоже не понял. Зачем при удалении элемента запонить или сохранять что-то? Объясни подробнее.


 

Member
Статус: Не в сети
Регистрация: 19.06.2005
Откуда: Ленинград
очень прошу помощи с задачей "Золотая гора" ("Треугольник") на C

Входной файл input.txt
Выходной: output.txt

Идея-подсказка, предложенная мне: "Реализация проста-делай двумерный массив и пускай цикл снизу. Последняя строка совпадает с исходной, а дальше подымайся вверх и выбирай максимум из двух. a[0][0] твой ответ"

Пример правильного input.txt:
5
7
3 8
8 1 0
2 7 4 4
4 5 2 6 5


Первое число во входном файле (5) - количество строк в треугольнике. Соответственно, остальные - его заполнение. Надо найти сумму чисел, расположенных на пути, начинающемся в верхней точке треугольника и заканчивающимся на основании.
Условия:
1. Каждый шаг на пути может осуществляться вниз по диагонали влево или вниз по диагонали вправо.
2. Число строк в треугольнике - от 1 до 100
3. Треугольник составлен из простых чисел от 0 до 99

Выходные данные.
В файл output.txt записывается только наибольшая сумма в виде целого числа. Для треугольника из примера правильно работающая прога запишет: "30"

Если не сдам в понедельник - не допустят до сессии, хотя это - последний оставшийся зачёт(

_________________
Хакер - не преступник. Взлом - для искусства. Смысл - в свободе.
Woot Team CEO


 

Member
Статус: Не в сети
Регистрация: 10.12.2007
Откуда: Санкт-Петербург
Пожалуйста, помогите с задачей в Паскале( уже второй раз обращаюсь). Необходимо число от 1000 до 800000 записать строкой.


 

Member
Статус: Не в сети
Регистрация: 12.12.2004
Откуда: Новосибирск
Помогите пожалуйста сделать 3 задачи на языке С! Ссылка на файл с задачами прилагается.
http://cp.people.overclockers.ru/cgi-bi ... e=labs.txt

_________________
Маньяк №28980. Неадекватен. Не умеет держать себя под контролем. Крайне агрессивен и раздражителен.


 

Member
Статус: Не в сети
Регистрация: 08.12.2005
Откуда: Питер!
sashar2 писал(а):
MW!
Не понял, почему в общем виде - это считается без класса. Но если тебе нужно без него, то просто убери класс. Код конструктора в начало программы, например, main. Код деструктора в конец. Приватный член класса будет просто вынесен на общий доступ, ну и всё, получиться программа без класса. Но это как-то не красиво....
MW! писал(а):
И ещё вопросик - как ты в этой програмке при удалении элемента из очереди, сохранял/запоминал его?(ну чтобы данные не потерять)..

Это тоже не понял. Зачем при удалении элемента запонить или сохранять что-то? Объясни подробнее.

Пробовал изменить код в соответствии с тем, что ты написал.. Что-то не получается.. Будь добр, помоги а. :weep:
p.s. насчёт вопроса вот так: каким образом, при удалении элемента из очереди, сохраняется порядок этой очереди, тоесть всё не превращается в кучемалу? :beer: Help!!!! Завтра сдавать (


 

Member
Статус: Не в сети
Регистрация: 05.12.2005
MW! писал(а):
sashar2 писал(а):
MW!
Не понял, почему в общем виде - это считается без класса. Но если тебе нужно без него, то просто убери класс. Код конструктора в начало программы, например, main. Код деструктора в конец. Приватный член класса будет просто вынесен на общий доступ, ну и всё, получиться программа без класса. Но это как-то не красиво....
MW! писал(а):
И ещё вопросик - как ты в этой програмке при удалении элемента из очереди, сохранял/запоминал его?(ну чтобы данные не потерять)..

Это тоже не понял. Зачем при удалении элемента запонить или сохранять что-то? Объясни подробнее.

Пробовал изменить код в соответствии с тем, что ты написал.. Что-то не получается.. Будь добр, помоги а. :weep:
p.s. насчёт вопроса вот так: каким образом, при удалении элемента из очереди, сохраняется порядок этой очереди, тоесть всё не превращается в кучемалу? :beer: Help!!!! Завтра сдавать (


Чтобы не терялись надо указателю на предыдущий элемент присвоить указатель на следующей элемент после удаленного, вот и всё.

Код:
#include <iostream>
#include <windows.h>

using namespace std;

struct QueueItem
{
  int Data;
  QueueItem* prevItem;
  QueueItem* nextItem;
};

QueueItem* _Item;

void SimpleQueue(int Data)
{
  _Item = new QueueItem();
  _Item->Data = Data;
  _Item->nextItem = NULL;
  _Item->prevItem = NULL;
};

void DelSimpleQueue()
{
  QueueItem* currentItem = _Item;   
  QueueItem* deleteItem;
  do
  {
    if (currentItem != NULL)
    {
      deleteItem = currentItem;
      currentItem = currentItem->nextItem;
      delete deleteItem;
    }
  } while (currentItem != NULL);
}

int Length()
{
  int length = 0;
  QueueItem* lastItem = _Item;
  do
  {
    if (lastItem != NULL)
    {
      lastItem = lastItem->nextItem;
      length++;
    }
  } while (lastItem != NULL);
  return length;
}

void RemoveItem(int index)
{
  QueueItem* deleteItem = _Item;
  if ((index > -1) && (_Item != NULL))
  {
    for (int i = 0; (i < index) && (deleteItem->nextItem != NULL); i++)
      deleteItem = deleteItem->nextItem;
    QueueItem* prevItem = deleteItem->prevItem;
    QueueItem* nextItem = deleteItem->nextItem;
    if (prevItem != NULL)
    {
      prevItem->nextItem = nextItem;
      if (nextItem != NULL)
        nextItem->prevItem = prevItem;     
    }
    else
    {
      _Item = nextItem;
      if (_Item != NULL)
        _Item->prevItem = NULL;
    }
    delete deleteItem;
  }
};

void RemoveItem()
{
  return RemoveItem(0);
};

void AddItem(int index, int Data)
{
  QueueItem* lastItem = _Item;
  if (lastItem != NULL)
  {
    if (index > -1)
    {
      for (int i = 0; (i < index) && (lastItem->nextItem != NULL); i++)
        lastItem = lastItem->nextItem;
      QueueItem* newItem = new QueueItem();
      newItem->Data = Data;
      newItem->prevItem = lastItem;
      newItem->nextItem = lastItem->nextItem;
      lastItem->nextItem = newItem;
    }
  }
  else
  {
    _Item = new QueueItem();
    _Item->Data = Data;
    _Item->nextItem = NULL;
    _Item->prevItem = NULL;
  }
}

void AddItem(int Data)
{
  AddItem(Length(), Data);
}

void ShiftItem(int currentIndex, int futureIndex)
{
  if (_Item != NULL)
  {
    QueueItem* item1 = _Item;
    if (currentIndex > -1)
    {
      for (int i = 0; (i < currentIndex) && (item1->nextItem != NULL); i++)
        item1 = item1->nextItem;
    }
    QueueItem* item2 = _Item;
    if (futureIndex > -1)
    {
      for (int i = 0; (i < futureIndex) && (item2->nextItem != NULL); i++)
        item2 = item2->nextItem;
    }
    //Здесь нужно уточнить, переставить элементы можно поменяв указатели, а можно просто данные
    if ((item2 != NULL) && (item1 != NULL))
    {
      int data = item2->Data;
      item2->Data = item1->Data;
      item1->Data = data;
    }
  }
}

int GetItemData(int index)
{
  QueueItem* lastItem = _Item;
  if (index > -1)
  {
    for (int i = 0; (i < index) && (lastItem->nextItem != NULL); i++)
      lastItem = lastItem->nextItem;
  }
  if (lastItem != NULL)
    return lastItem->Data;
  else
    return NULL;
}

int GetItemData()
{
  return GetItemData(0);
}

int main()
{
 int len;
 SimpleQueue(11);

 AddItem(22);
 AddItem(1, 33);
 ShiftItem(0, 2);
 cout << GetItemData() << endl;
 cout << GetItemData(2) << endl;
 cout << Length() << endl;
 RemoveItem();
 cout << Length() << endl;
 cin >> len;

 DelSimpleQueue();
 return 0;
}


 

Member
Статус: Не в сети
Регистрация: 08.12.2005
Откуда: Питер!
sashar2
Огромное спасибо!! ;)


 

Member
Статус: Не в сети
Регистрация: 19.06.2005
Откуда: Ленинград
разобрался, всем сорри

_________________
Хакер - не преступник. Взлом - для искусства. Смысл - в свободе.
Woot Team CEO


Последний раз редактировалось Toichik 21.12.2007 23:38, всего редактировалось 1 раз.

 

Господа, нужно написать транслятор на C. Задача такова.

Исх. файл :слова: десятичные числа, ИЛИ, И, НЕ, скобки. Предложения из слов. Транслятор должен прочесть выражения, перевести дес числа в дв форму, И,ИЛИ,НЕ заменить на соотв. операции. В выходном файле должны быть соответственно результаты вычисления выражений.

пример исходного выражения:

(((10и47)или56)и не 7)

Люди добрие, поможт кто чем может)


 

Member
Статус: Не в сети
Регистрация: 10.08.2006
Все, не выдержал! Послезавтра экзамен, а я ни одной проги написать не могу! Учебники читаю, но ниче не понимаю (видать, не мое).
Есть такое задание:

1) Составить подпрограмму-процедуру и подпрограмму-функцию для вычисления значений элементов aij матрицы A=||aij||nm по формуле aij=z(xi,yi), где xi=a+(i-1)*h1, yj=c+(j-1)*h2, где h1=(b-a)/n, h2=(d-c)/m, i=1,2,...,n+1, j=1,2,...,m+1, z=x*Sin(y)-y*Cos(x).
2) Составить подпрограмму-процедуру для вычисления матрицы В, элементы которой равны элементами строк матрицы А, расположенных в порядке убывания.

Прим. i, j - индексы. a, b, c, d, m, n - постоянные.

Вот что я умудрился написать:
Цитата:
program lab_6;
uses crt;
const m=10; n=10;
var i, j: byte;
p, x1, y1: real;
L: array [1..m, 1..n] of real;


function zna4(x, y: real): real;
const a=0; b=1; c=0; d=1;
var h1, h2: real;
begin
h1:=(b-a)/n;
h2:=(d-c)/m;
for i:=1 to n do
begin
x:=a+(i-1)*h1;
for j:=1 to m do
begin
y:=c+(j-1)*h2;
zna4:=x*Sin(y)-y*Cos(x);
end;
end;
end;


procedure matrica;
var K:array [1..m, 1..n] of real;
begin
K[i,j]:=zna4(x1,y1);
end;

begin
clrscr;
matrica;
for i:=1 to m do
begin
for j:=1 to n do
write(L[i,j]:7:3); writeln;
end;
end.


И скажите, пожалуйста, как отследить значение функции при пошаговом выполнении программы. Заранее безумно благодарен!


 

Member
Статус: Не в сети
Регистрация: 10.08.2006
Всем спасибо, разобрался сам :)


 

Member
Статус: Не в сети
Регистрация: 03.04.2005
Откуда: Moscow City
Есть прога замены подстроки в строке, как добавить цикл, чтобы заменяла поворяющиеся значения.
например 45612678412, чтобы 12, 2 раза заменялся.

Код:
program Zamenapodstroki;
uses crt;
var st1,subst1,subst2:string;
aux:byte;
i,j:integer;

begin
clrscr;
textcolor(green);
write('Enter st1 : ');
readln(st1);
write('Enter subst1 : ');
readln(subst1);
write('Enter subst2 : ');
readln(subst2);
aux := pos(subst1,st1);
delete(st1,aux,length(subst1));
insert(subst2,st1,aux);
writeln('Final : ',st1);

while Not keypressed do;
end.


 

Member
Статус: Не в сети
Регистрация: 09.08.2005
Здравствуйте товарищи! В общем такой трабл.В универе задали базу данных создать по теме муз.картотека(я начал в Accesse делать).....Ну базу то я делать начал,только вот у препода етсь притензии.....Вот список замечаний:
1. Таблица не нормализована (много дублирующихся данных увеличивает размер базы и вероятность ввода ошибочных данных).
2. Отчеты обычно делают на основании запроса, который запрашивает значение поля и отбирает по нему информацию (например песни одного исполнителя).
3. Кроме табличной формы обычно содают форму для ввода одной записи(с пояснениями комментариями и тд)
4. Начинать работу "пользователю" лучше с кнопочной формы(с которой вызываются все остальные функции).
В общем теперь мои вопросы(помогите плиз)
1)как ее нормализовать?
2)опять же как это сделать? Ну отчет то просто создать я могу,но на основании запроса - чет не понял как
3)вроде бы сделал (результат приложу ниче) проверьте плиз
4)что на ваш взгляд должно быть в кнопочной форме по данной теме?
5) как вы думаете не надо ли еще что нить добавить в базу,например столбец путь к файлу(и ка кэто лучше реализовать)
Если кто сможет устранить замечания подправив мою базу, буду вообще дико благодарен! Я думаю человеку разбирающемуся это будет просто!
вот моя база,то что вышло на данный момент http://ifolder.ru/4829952
Огромная просьба помочь бедному студенту...


 

Member
Статус: Не в сети
Регистрация: 05.12.2005
Purgen
1) Приведи структуру твоей базы данных, можно картинкой. Скорее всего ты в таблицах дублируешь данные, вместо того, чтобы использовать только ключи в зависимых таблицах ты добавил еще какие-то поля. Например, в таблице "Музыкальная картотека" зачем-то присутствуют поля "Артист" и "Жанр", причем имеются и их ключи...
2) Получить отчет по запросу Select - это то же самое, что и по таблице, ничем не отличается. Нужно только предварительно сохранить запрос.
3) Еще ничего не сделано...
4) В форме должен быть ввод и просмотр всех необходимых данных. То же самое, если бы это была не база данных, а обычное приложение.
5) Подправь сначало то, что есть. И не понятно в чем загвоздка в создании столбца, который будет хранить путь к файлу?


 

Member
Статус: Не в сети
Регистрация: 09.08.2005
5)ну например путь к муз.файлу на жестком диске...Ну тема муз картотека(в данном случае - ккртотека муз файлов хрянящихся на компе юзера,вот и думаю нужно ли по этой теме путь к файлу или нет)
1)там такая тема,что например есть одна и та же песня,которая входит в разные алььбомы(переиздания альбомов и тп) может быть дело в этом...Далее а как ты предлагаешь? Стереть поля артист и жанр и оставить только их ключи? Ну тут я согласен если дело в этом,то стоит подправить
4)спасиб,в общем все что можно просмотреть через обычную таблицу но путем кнопок...
2)select - имеется ввиду запрос sql или что то иное?
3)а можеш подсказать как сделать или изменить в моей базе что я выложил и залить на айфолдер или еще куда? (яб глянул и разобрался)
В оюбом случае спасибо за советы.


 

Member
Статус: Не в сети
Регистрация: 23.07.2005
Откуда: Екатеринбург
как найти угол между двумя прямыми?


 

Advanced member
Статус: Не в сети
Регистрация: 09.03.2004
Откуда: Кишинёв
LikvidatorMax Мыслите глубже. Сам уже забыл, но интернет всегда прийдёт на помощь .


Показать сообщения за:  Поле сортировки  
Начать новую тему Новая тема / Ответить на тему Ответить  Сообщений: 938 • Страница 35 из 47<  1 ... 32  33  34  35  36  37  38 ... 47  >
-

Часовой пояс: UTC + 3 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Перейти:  
Создано на основе phpBB® Forum Software © phpBB Group
Русская поддержка phpBB | Kolobok smiles © Aiwan