C++

Взаимопомощ, полезна информация и всичко, извън темата на останалите секции
Потребителски аватар
smurf
Мнения: 918
Регистриран на: Пон 13 фев 2006 19:57
Автомобил:
Двигател:
Местоположение: Димитровград

C++

Мнениеот smurf » Пет 02 юни 2006 9:49


има ли някой който се занимава с Borland C++???имам една курсова задача....и не знам как ще стане...ако някой може да помогне да се обади, ще съм много благодарен:))




Потребителски аватар
zmej
Мнения: 1510
Регистриран на: Вто 08 юни 2004 15:35
Автомобил: Audi 8D5 Quattro
Двигател: AJL
Местоположение: София
Контакти:

Мнениеот zmej » Пет 02 юни 2006 9:54


Какво трябва да правиш?


Потребителски аватар
smurf
Мнения: 918
Регистриран на: Пон 13 фев 2006 19:57
Автомобил:
Двигател:
Местоположение: Димитровград

Мнениеот smurf » Пет 02 юни 2006 9:56


"да се направи програма за едномерен масив, и да се отпечатат всички числа които са удвоени нечетни", ей това е:))ама си нямам идея как ще стане?


Потребителски аватар
zmej
Мнения: 1510
Регистриран на: Вто 08 юни 2004 15:35
Автомобил: Audi 8D5 Quattro
Двигател: AJL
Местоположение: София
Контакти:

Мнениеот zmej » Пет 02 юни 2006 10:08


нещо такова ще да е:

#include <stdio.h>

#define MAX_ARR 200

void main(void)
{
unsigned arr[MAX_ARR];

for(i=0; i<MAX_ARR; i++) {
printf("\nEnter #%d, 0 for end - ",i);
scanf(%d, *(arr+i));
if(arr[i] == 0) break;
}

for(i=0; i<MAX_ARR;i++) {
if(arr[i] == 0) break;
if( (arr[i]/2)%2 == 1) printf("Number %d is %d\n", i, arr[i]);
}
}


Oтначало ги въвеждаш, като въведеш 0 - смята и ти вади нечетните *2...

п.с. не съм го пробвал, трябва да има някоя дребна грешчица, ама хващаш идеята :) не съм сигурен за формата на scanf, ама на Ц за ПЦ съм писал последно преди поне 5 години... :oops:

б@си тоя цитат интервалите за нищо ги няма...


Потребителски аватар
smurf
Мнения: 918
Регистриран на: Пон 13 фев 2006 19:57
Автомобил:
Двигател:
Местоположение: Димитровград

Мнениеот smurf » Пет 02 юни 2006 10:15


ще пробвам:))мерси много:))


Потребителски аватар
Vizor
Изгубена душа
Мнения: 12509
Регистриран на: Съб 04 мар 2006 16:01
Автомобил: Subaru Forester XT
Двигател:
Местоположение: София
Контакти:

Мнениеот Vizor » Пет 02 юни 2006 10:20


zmej попринцип не им дават да учат stdio.h карат го на iostream.h дано да не стане обаркване


Потребителски аватар
zmej
Мнения: 1510
Регистриран на: Вто 08 юни 2004 15:35
Автомобил: Audi 8D5 Quattro
Двигател: AJL
Местоположение: София
Контакти:

Мнениеот zmej » Пет 02 юни 2006 13:59


Vizor написа:zmej попринцип не им дават да учат stdio.h карат го на iostream.h дано да не стане обаркване


Mдам, така става още по-лесно...

Заменя <stdio.h> с <iostream.h>,

Всички "printf" с "cout" и всички "scanf" с "cin" ей така:

printf("\nEnter #%d, 0 for end - ",i); -> cout >> "\n Enter" >> i >> ", 0 for end - ";
scanf(%d, *(arr+i)); -> cin << *(arr+i);

printf("\nNumber %d is %d\n", i, arr[i]); -> cout >> "Number " >> i >> " is " >> arr[i];

И на последния ред в main слага ред cout >> "\n";


Потребителски аватар
kotse_botse
Спортист - антипияница
Мнения: 2123
Регистриран на: Сря 17 авг 2005 10:54
Автомобил:
Двигател:
Местоположение: София
Контакти:

Мнениеот kotse_botse » Пет 02 юни 2006 14:18


Vizor написа:zmej попринцип не им дават да учат stdio.h карат го на iostream.h дано да не стане обаркване


Да не мислиш, че някой ше му гледа кода ;-)


Потребителски аватар
gstoyanov
Мнения: 198
Регистриран на: Сря 25 яну 2006 22:22
Автомобил:
Двигател:
Местоположение: София

Мнениеот gstoyanov » Пет 02 юни 2006 14:54


Терминът "удвоени нечетни" си е направо неясен. Някой може ли да го дефнира????
Щото аз мога да го тълкувам по 2 начина:
1. удвоено нечетно = нечетно * 2
2. удвоено нечетно = (нечетно * 2) * 2

Ако е (1), то всяко четно число (т.е. с 1 в бит 0) отговаря на условието ;), или такова X, за което (X & 0x01) == 0
Ако е (2), то всяко число с 1 в бит 1 е такова число, ... или X, за което (X & 0x02) != 0


Zmej:
Изразът "arr[i]/2" дава като резултат цяло число! Тоест, за arr[i] = 10 или 11 дава един и същи отговор "5" (10 отговаря на точка (1), но 11 - не, друг пример са 12 и 13 - за точка (2))

Едит: промених проверката за вариант (1)
... и след забележката на pipi_to (явно съм се заблеял - днес нали е петък): остава като окончателен вариант за проверка:
X, за което (X & 0x02) != 0

Последна промяна от gstoyanov на Пет 02 юни 2006 15:34, променено общо 5 пъти.


Потребителски аватар
zmej
Мнения: 1510
Регистриран на: Вто 08 юни 2004 15:35
Автомобил: Audi 8D5 Quattro
Двигател: AJL
Местоположение: София
Контакти:

Мнениеот zmej » Пет 02 юни 2006 14:55


Прав си, само че щом е удвоено, няма как да е нечетно...


Потребителски аватар
gstoyanov
Мнения: 198
Регистриран на: Сря 25 яну 2006 22:22
Автомобил:
Двигател:
Местоположение: София

Мнениеот gstoyanov » Пет 02 юни 2006 14:56


zmej написа:Прав си, само че щом е удвоено, няма как да е нечетно...

:) ти не знаеш какви са числата (а те са произволни), само проверяваш кои от тях отговарят на условието.


Потребителски аватар
zmej
Мнения: 1510
Регистриран на: Вто 08 юни 2004 15:35
Автомобил: Audi 8D5 Quattro
Двигател: AJL
Местоположение: София
Контакти:

Мнениеот zmej » Пет 02 юни 2006 14:59


Така е, просто трябва да се добави проверка за четно число - нечетно няма смисъл да се проверява - то няма как да е удвоено цяло число :)


pipi_to
Мнения: 316
Регистриран на: Съб 04 сеп 2004 23:24
Автомобил:
Двигател:
Местоположение: София
Контакти:

Мнениеот pipi_to » Пет 02 юни 2006 15:00


Според мен 6 е удвоено нечетно, защото е 3x2, a 8 е удвоено четно, защото е 4x2 :idea:


Потребителски аватар
gstoyanov
Мнения: 198
Регистриран на: Сря 25 яну 2006 22:22
Автомобил:
Двигател:
Местоположение: София

Мнениеот gstoyanov » Пет 02 юни 2006 15:03


zmej написа:Така е, просто трябва да се добави проверка за четно число - нечетно няма смисъл да се проверява - то няма как да е удвоено цяло число :)
Няма смисъл да се разгръщат две, или не дай боже повече :) проверки. Става и само с една проверка ;)
Ако условите трябва да се тълкувакато (2), то е такова число, което се дели на 4 с остатък 2 (или има 1 в бит 1, както е показано по-горе)


Потребителски аватар
zmej
Мнения: 1510
Регистриран на: Вто 08 юни 2004 15:35
Автомобил: Audi 8D5 Quattro
Двигател: AJL
Местоположение: София
Контакти:

Мнениеот zmej » Пет 02 юни 2006 15:05


gstoyanov написа:... то всяко число с 1 в бит 1 е такова число, ... или X, за което (X & 0x02) != 0


Eй така става, поне както го виждам, ама после ще има да се обяснява... :lol:



Върни се в “ОФФ-Топик - други”

Кой е на линия

Потребители, разглеждащи този форум: Няма регистрирани потребители и 48 госта