Faits: Faits: A. Par contrat des 28 juillet et 4 août 1997, Y._ SA (ci-après: Y._) s'est engagée à exécuter, dès le 1er août 1997, des prestations de maintenance pour le compte de X._ Sàrl (ci-après: X._). Ces prestations consistaient à prendre en charge tous les frais pour l'entretien de l'équipement du système d'impression «Z._» (art. 1) et incluaient une maintenance normale effectuée quatre fois par année (art. 5). Les interventions consécutives à une panne devaient être effectuées au plus tard dans les huit heures (art. 6). Les frais d'entretien, qui se montaient à 3'010 fr. par mois hors taxe (art. 10), ne comprenaient pas les réparations ou échanges de pièces pour cause d'accident, de négligence, d'utilisation non conforme, etc. (art. 3). De son côté, afin d'assurer le bon fonctionnement de l'équipement, X._ s'engageait «à utiliser les produits, pièces, fournitures ou consommables conformes aux normes fournies par Y._» (art. 2B). Aux mêmes dates, les parties ont signé une annexe à ce contrat, valable également dès le 1er août 1997. Celle-ci prévoyait l'entretien du logiciel des installations d'héliocopie et de photocopie en contrepartie du paiement d'une mensualité de 500 fr. hors taxe. Ces deux contrats étaient conclus pour une durée d'une année, puis se renouvelaient automatiquement d'année en année, sauf résiliation écrite d'une partie, au moins trois mois avant la date d'échéance (art. 12). X._ s'est plainte à plusieurs reprises auprès de Y._ de retards dans la livraison et de défauts des produits et consommables achetés auprès d'elle. En raison de ces défauts, Y._ a établi plusieurs notes de crédit en faveur de X._. Le 10 février 1999, X._ a encore adressé de tels griefs; elle a également contesté les décomptes établis par Y._ et a informé cette dernière qu'elle était toujours dans l'attente d'un planning des entretiens préventifs, lesquels n'avaient jamais eu lieu. Il est par ailleurs établi que les interventions à la suite de pannes du système ne respectaient pas les délais prévus à l'art. 6 du contrat. Le 10 mars 1999, Y._ a indiqué à X._ que le genre d'équipement concerné ne se prêtait pas à une maintenance à intervalles fixes; elle annonçait en outre qu'elle enverrait un décompte du solde échu pour paiement dans les dix jours, faute de quoi elle serait contrainte de cesser les prochaines livraisons. Par courrier du 21 avril 1999, Y._ a déclaré résilier le contrat de maintenance et son annexe pour le 31 juillet 1999. Elle n'a depuis lors plus livré de matériel à X._ et n'est plus intervenue dans les locaux de celle-ci. De son côté, X._ n'a plus demandé à Y._ de procéder à des interventions sur son équipement et elle s'est fournie en produits et consommables auprès d'une entreprise tierce, pour un prix supérieur à celui pratiqué par Y._. Le 6 août 1999, Y._ a envoyé à X._ un troisième rappel visant le règlement de la somme totale de 57'769 fr. 85 dans un délai de dix jours; cette somme comprenait notamment les mensualités dues jusqu'au 31 juillet 1999. Le 10 septembre suivant, X._ a formé opposition au commandement de payer cette somme. Le 6 août 1999, Y._ a envoyé à X._ un troisième rappel visant le règlement de la somme totale de 57'769 fr. 85 dans un délai de dix jours; cette somme comprenait notamment les mensualités dues jusqu'au 31 juillet 1999. Le 10 septembre suivant, X._ a formé opposition au commandement de payer cette somme. B. Le 26 octobre 1999, Y._ a assigné X._ en paiement de 57'769 fr. 85 avec intérêts à 5% l'an dès le 17 août 1999 et a requis la mainlevée de l'opposition précitée. La défenderesse a conclu au déboutement de la demanderesse. Par jugement du 15 novembre 2004, la Cour civile du Tribunal cantonal vaudois a condamné X._ à verser à Y._ la somme de 51'198 fr. avec intérêts à 5% l'an dès le 20 août 1999; elle a prononcé à due concurrence la mainlevée de l'opposition susmentionnée. En substance, la cour cantonale a retenu que la défenderesse devait s'acquitter des mensualités de maintenance jusqu'à la fin du délai de résiliation et payer diverses factures encore ouvertes, le tout à hauteur de 51'198 fr. selon ce qu'avait établi l'expert judiciaire. Par jugement du 15 novembre 2004, la Cour civile du Tribunal cantonal vaudois a condamné X._ à verser à Y._ la somme de 51'198 fr. avec intérêts à 5% l'an dès le 20 août 1999; elle a prononcé à due concurrence la mainlevée de l'opposition susmentionnée. En substance, la cour cantonale a retenu que la défenderesse devait s'acquitter des mensualités de maintenance jusqu'à la fin du délai de résiliation et payer diverses factures encore ouvertes, le tout à hauteur de 51'198 fr. selon ce qu'avait établi l'expert judiciaire. C. La défenderesse interjette un recours en réforme au Tribunal fédéral. Elle conclut à la réforme du jugement cantonal en ce sens qu'elle ne doit verser à la demanderesse que 3'387 fr. 80 avec intérêts à 5% l'an dès le 20 août 1999, l'opposition frappant le commandement de payer devant être levée à concurrence de ce montant. La demanderesse propose le rejet du recours.