Помогите с задачками по С++, неуспеваю... желательно в 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 и классами посложнее. Как писать незнаю, т.к на СИ не пишу! Но задания легкие...
это ты наверное на php легко это напишешь, а в C будет посложнее, если будет время напишу только не на билдере. полюбому кто-то уже писал до тебя use google.
вот я для первой лабы набросал немного, но никак не получу ответ в таком виде: ----------------------------------- самое длинное слово: ... самое коротко слово: ... Code: #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(); }
Anium по-моему сильно загнул намного меньшим кодом обойтись можно используя строки Code: #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: может еще короче можно... 2 Anium: _http://www.forum.ishodniki.ru/index.php?action=;topic=5992.0;prev_next=prev ЗЫ: а ты тему развивай, глядишь, седня фсе доделаешь
небольшая попровочка... пользоватся <string> не разрешает препод... зы: в проге я не нашёл условия завершения цикла ввода слов... всё бы хорошо.. но надо вводить слова самому, а это очень простой пример..
вот что у меня получилось: Code: #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); }
уверен, а стринг нельзя использовать по словам препода чтобы не расслабляться и почувсвовать все прелести языка С, а не заниматься халтурой. Конешно со стрингом всё гораздо проще... Спасибо! вот это как раз то что требует препод Осталось совсем чуть чуть... 4 лабы = ) Если бы мог репу поднять, не пожалел плюсиков...
для меня цель - сдать лабы для препода - научить нас яву С/С++, ему думаю видней какими способами нас учить