Просмотр полной версии : Помогите с задачками по С++
Помогите с задачками по С++, неуспеваю... желательно в Builder'е
1. Написать программу которая выводит самое длинное и самое короткое слово во
введённом предложении
2.Написать рекурсивную функцию которая заполняет массив целых чисел значениями,
вводимых пользователем в обратном порядке
3.Написать функцию для решения системы N уравнений
4. Написать класс для решения системы N уравнений
5. DLL. Вычислить значение функции y=0.5x^2 + 4x - 3 и постройте график этой функции в Exel
Я думаю что такие задачки только за деньги ( написать программы , функции , класс )
Мля, что тут писать...
Смысл алгоритмов:
1. Вводишь предложение. Создаешь динамический массив. Заполняешь массив словами (в качестве разделителя используешь "пробел"). Анализируешь длинну каждой переменной массива через цикл, записывая в переменные $ds (самое длинное) и $ks (самое короткое), например.
2. Заполняешь массив. Перезаписываешь значения в обратном порядке. (Возможно, есть готовая функция при работе с массивом).
3. Надо вспомнить математику за 7-8 класс... Вообщем-то можно подбором (и выбирая диапазон чисел)
4-5. С DLL и классами посложнее. Как писать незнаю, т.к на СИ не пишу!
Но задания легкие...
есть немного wmz, стучите в аську 512-543, договоримся
VampiRUS
12.12.2006, 17:07
1. Вводишь предложение. Создаешь динамический массив. Заполняешь массив словами (в качестве разделителя используешь "пробел"). Анализируешь длинну каждой переменной массива через цикл, записывая в переменные $ds (самое длинное) и $ks (самое короткое), например.
это ты наверное на php легко это напишешь, а в C будет посложнее, если будет время напишу только не на билдере.
3.Написать функцию для решения системы N уравнений
полюбому кто-то уже писал до тебя use google.
это ты на php легко это напишешьНу дык ;) И на Delphi тоже.
А в СИшке в чем трудность будет?
вот я для первой лабы набросал немного, но никак не получу ответ в таком виде:
-----------------------------------
самое длинное слово: ...
самое коротко слово: ...
#include <iostream.h>
#include <stdio.h>
#include <vcl.h>
void main (int arg_cou, char** arg_cnt)
{
char str [200], *cp, *lng;
int i, maxlen, curlen;
char c;
// вводим слова
for (i=0; i < (sizeof(str)-2); i++)
{ c = getchar();
if (c == '\n') break;
str[i] = c;
}
str [i] = ' ';
str [i+1] = 0x00;
cp = lng = str;
maxlen = 0;
for (i=0; str[i]; i++)
{ if (str[i] == ' ') // слово кончилось
{ if (*cp == ' ') // пробросить группу пробелов
{ cp = str+i; continue; }
curlen = (str+i) - cp;
if (curlen > maxlen) // это слово длиннее ?
{ maxlen = curlen; lng = cp; }
str[i] = 0x00;
printf("<%s> %2d %2d\n", cp, curlen, maxlen); // отладка
cp = str + i + 1;
}
else // не кончилось
{ if (*cp == ' ') cp = str + i;
}
}
printf("самое длинное слово <%s>\n", lng);
getchar();
}
VampiRUS
12.12.2006, 17:28
Ну дык И на Delphi тоже.
А в СИшке в чем трудность будет?
посмотри листиг который привёл Anium, а сколько бы это заняло на php?
NaX[no]rT
12.12.2006, 17:44
Anium по-моему сильно загнул (: намного меньшим кодом обойтись можно используя строки #include <iostream.h>
#include <string>
int main()
{
string buf, largest,shortest;
int maxLen,minLen,curLen,
max = -1, min=100,
cnt = 0;
while ( cin >> buf )
{
curLen = buf.size();
if ( curLen > max )
{
max = curLen;
largest = buf;
}
if ( curLen < min )
{
min = curLen;
shortest = buf;
}
}
cout << "The largest word: " << largest << endl;
cout << "The shortest word: " << shortest << endl;
}
2 VampiRUS: может еще короче можно... :p
2 Anium: _http://www.forum.ishodniki.ru/index.php?action=;topic=5992.0;prev_next=prev
ЗЫ: а ты тему развивай, глядишь, седня фсе доделаешь :)
r†']Anium по-моему сильно загнул (: намного меньшим кодом обойтись можно используя строки
небольшая попровочка... пользоватся <string> не разрешает препод...
зы: в проге я не нашёл условия завершения цикла ввода слов...
_http://www.forum.ishodniki.ru/index.php?action=;topic=5992.0;prev_next=prev
всё бы хорошо.. но надо вводить слова самому, а это очень простой пример..
VampiRUS
13.12.2006, 05:54
вот что у меня получилось:
#include <stdio.h>
void main(){
char str[200],*cur,*max,*min;
int i=0, maxlen=0, curlen, minlen=200;
fgets(str,200,stdin);
while(str[i]!='\x0'){
cur=str+i;
while(str[i]!=' '&&str[i]!='\n')i++;
curlen=str+i-cur;
if(curlen>maxlen){
maxlen=curlen;
max=cur;
max[maxlen]='\x0';
}
if(curlen<minlen){
minlen=curlen;
min=cur;
min[minlen]='\x0';
}
i++;
}
printf("The largest word: %s\n",max);
printf("The shortest word: %s\n",min);
}
пользоватся <string> не разрешает препод... А ты уверен, что надо на С++, а не на С? ))
Ибо либо так, либо ваш препод дэбыл )
VampiRUS
13.12.2006, 15:10
Ибо либо так, либо ваш препод дэбыл )
что не исключено)), всякое бывает.
А ты уверен, что надо на С++, а не на С? ))
Ибо либо так, либо ваш препод дэбыл )
уверен, а стринг нельзя использовать по словам препода чтобы не расслабляться и почувсвовать все прелести языка С, а не заниматься халтурой. Конешно со стрингом всё гораздо проще...
вот что у меня получилось:
Спасибо! вот это как раз то что требует препод :)
Осталось совсем чуть чуть... 4 лабы = )
Если бы мог репу поднять, не пожалел плюсиков...
NaX[no]rT
13.12.2006, 17:17
уверен, а стринг нельзя использовать по словам препода чтобы не расслабляться и почувсвовать все прелести языка С, а не заниматься халтурой. Конешно со стрингом всё гораздо проще...
А зачем тогда это всё создаётся?))
зы: в проге я не нашёл условия завершения цикла ввода слов...Ctrl + Z
r†']А зачем тогда это всё создаётся?))
для меня цель - сдать лабы
для препода - научить нас яву С/С++, ему думаю видней какими способами нас учить :)
если что будет еще кидай сюда, я в прошлом году лабы сдавал, всей группе помогал, мож че подскажу
если что будет еще кидай сюда, я в прошлом году лабы сдавал, всей группе помогал, мож че подскажу
ну дык в 1 посте ещё 4 задачки
За 4 и 5 задачи дам по шестизнаку :)
система линейных уравнений с N неизвестными
vBulletin® v3.8.14, Copyright ©2000-2026, vBulletin Solutions, Inc. Перевод: zCarot